storagefsm: Record publish deals message CID
This commit is contained in:
parent
29078aaae9
commit
7806a9885a
49
extern/storage-sealing/cbor_gen.go
vendored
49
extern/storage-sealing/cbor_gen.go
vendored
@ -135,12 +135,34 @@ func (t *DealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
_, err := w.Write(cbg.CborNull)
|
_, err := w.Write(cbg.CborNull)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := w.Write([]byte{163}); err != nil {
|
if _, err := w.Write([]byte{164}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
scratch := make([]byte, 9)
|
scratch := make([]byte, 9)
|
||||||
|
|
||||||
|
// t.PublishCid (cid.Cid) (struct)
|
||||||
|
if len("PublishCid") > cbg.MaxLength {
|
||||||
|
return xerrors.Errorf("Value in field \"PublishCid\" was too long")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len("PublishCid"))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := io.WriteString(w, string("PublishCid")); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if t.PublishCid == nil {
|
||||||
|
if _, err := w.Write(cbg.CborNull); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if err := cbg.WriteCidBuf(scratch, w, *t.PublishCid); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field t.PublishCid: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// t.DealID (abi.DealID) (uint64)
|
// t.DealID (abi.DealID) (uint64)
|
||||||
if len("DealID") > cbg.MaxLength {
|
if len("DealID") > cbg.MaxLength {
|
||||||
return xerrors.Errorf("Value in field \"DealID\" was too long")
|
return xerrors.Errorf("Value in field \"DealID\" was too long")
|
||||||
@ -224,7 +246,30 @@ func (t *DealInfo) UnmarshalCBOR(r io.Reader) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch name {
|
switch name {
|
||||||
// t.DealID (abi.DealID) (uint64)
|
// t.PublishCid (cid.Cid) (struct)
|
||||||
|
case "PublishCid":
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
b, err := br.ReadByte()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if b != cbg.CborNull[0] {
|
||||||
|
if err := br.UnreadByte(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
c, err := cbg.ReadCid(br)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.PublishCid: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.PublishCid = &c
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// t.DealID (abi.DealID) (uint64)
|
||||||
case "DealID":
|
case "DealID":
|
||||||
|
|
||||||
{
|
{
|
||||||
|
2
extern/storage-sealing/sealing.go
vendored
2
extern/storage-sealing/sealing.go
vendored
@ -141,7 +141,7 @@ func (m *Sealing) Stop(ctx context.Context) error {
|
|||||||
return m.sectors.Stop(ctx)
|
return m.sectors.Stop(ctx)
|
||||||
}
|
}
|
||||||
func (m *Sealing) AddPieceToAnySector(ctx context.Context, size abi.UnpaddedPieceSize, r io.Reader, d DealInfo) (abi.SectorNumber, abi.PaddedPieceSize, error) {
|
func (m *Sealing) AddPieceToAnySector(ctx context.Context, size abi.UnpaddedPieceSize, r io.Reader, d DealInfo) (abi.SectorNumber, abi.PaddedPieceSize, error) {
|
||||||
log.Infof("Adding piece for deal %d", d.DealID)
|
log.Infof("Adding piece for deal %d (publish msg: %s)", d.DealID, d.PublishCid)
|
||||||
if (padreader.PaddedSize(uint64(size))) != size {
|
if (padreader.PaddedSize(uint64(size))) != size {
|
||||||
return 0, 0, xerrors.Errorf("cannot allocate unpadded piece")
|
return 0, 0, xerrors.Errorf("cannot allocate unpadded piece")
|
||||||
}
|
}
|
||||||
|
1
extern/storage-sealing/types.go
vendored
1
extern/storage-sealing/types.go
vendored
@ -30,6 +30,7 @@ type Piece struct {
|
|||||||
|
|
||||||
// DealInfo is a tuple of deal identity and its schedule
|
// DealInfo is a tuple of deal identity and its schedule
|
||||||
type DealInfo struct {
|
type DealInfo struct {
|
||||||
|
PublishCid *cid.Cid
|
||||||
DealID abi.DealID
|
DealID abi.DealID
|
||||||
DealSchedule DealSchedule
|
DealSchedule DealSchedule
|
||||||
KeepUnsealed bool
|
KeepUnsealed bool
|
||||||
|
@ -87,8 +87,13 @@ func (n *ProviderNodeAdapter) PublishDeals(ctx context.Context, deal storagemark
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (n *ProviderNodeAdapter) OnDealComplete(ctx context.Context, deal storagemarket.MinerDeal, pieceSize abi.UnpaddedPieceSize, pieceData io.Reader) (*storagemarket.PackingResult, error) {
|
func (n *ProviderNodeAdapter) OnDealComplete(ctx context.Context, deal storagemarket.MinerDeal, pieceSize abi.UnpaddedPieceSize, pieceData io.Reader) (*storagemarket.PackingResult, error) {
|
||||||
|
if deal.PublishCid == nil {
|
||||||
|
return nil, xerrors.Errorf("deal.PublishCid can't be nil")
|
||||||
|
}
|
||||||
|
|
||||||
p, offset, err := n.secb.AddPiece(ctx, pieceSize, pieceData, sealing.DealInfo{
|
p, offset, err := n.secb.AddPiece(ctx, pieceSize, pieceData, sealing.DealInfo{
|
||||||
DealID: deal.DealID,
|
DealID: deal.DealID,
|
||||||
|
PublishCid: deal.PublishCid,
|
||||||
DealSchedule: sealing.DealSchedule{
|
DealSchedule: sealing.DealSchedule{
|
||||||
StartEpoch: deal.ClientDealProposal.Proposal.StartEpoch,
|
StartEpoch: deal.ClientDealProposal.Proposal.StartEpoch,
|
||||||
EndEpoch: deal.ClientDealProposal.Proposal.EndEpoch,
|
EndEpoch: deal.ClientDealProposal.Proposal.EndEpoch,
|
||||||
@ -351,7 +356,7 @@ func (n *ProviderNodeAdapter) GetChainHead(ctx context.Context) (shared.TipSetTo
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (n *ProviderNodeAdapter) WaitForMessage(ctx context.Context, mcid cid.Cid, cb func(code exitcode.ExitCode, bytes []byte, err error) error) error {
|
func (n *ProviderNodeAdapter) WaitForMessage(ctx context.Context, mcid cid.Cid, cb func(code exitcode.ExitCode, bytes []byte, err error) error) error {
|
||||||
receipt, err := n.StateWaitMsg(ctx, mcid, build.MessageConfidence)
|
receipt, err := n.StateWaitMsg(ctx, mcid, 2*build.MessageConfidence)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cb(0, nil, err)
|
return cb(0, nil, err)
|
||||||
}
|
}
|
||||||
|
@ -102,6 +102,7 @@ func (st *SectorBlocks) AddPiece(ctx context.Context, size abi.UnpaddedPieceSize
|
|||||||
return 0, 0, err
|
return 0, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: DealID has very low finality here
|
||||||
err = st.writeRef(d.DealID, sn, offset, size)
|
err = st.writeRef(d.DealID, sn, offset, size)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, 0, xerrors.Errorf("writeRef: %w", err)
|
return 0, 0, xerrors.Errorf("writeRef: %w", err)
|
||||||
|
Loading…
Reference in New Issue
Block a user