Documentation ¶
Index ¶
- Constants
- Variables
- func BigCmp(a, b BigInt) int
- func CidArrsContains(a []cid.Cid, b cid.Cid) bool
- func CidArrsEqual(a, b []cid.Cid) bool
- func CidArrsSubset(a, b []cid.Cid) bool
- func DeciStr(bi BigInt) string
- func DecodeSignedVoucher(s string) (*paych.SignedVoucher, error)
- func IsTicketWinner(vrfTicket []byte, mypow BigInt, totpow BigInt) bool
- func SizeStr(bi BigInt) string
- type Actor
- type BeaconEntry
- type BigInt
- type BlockHeader
- func (blk *BlockHeader) Cid() cid.Cid
- func (blk *BlockHeader) IsValidated() bool
- func (blk *BlockHeader) LastTicket() *Ticket
- func (t *BlockHeader) MarshalCBOR(w io.Writer) error
- func (blk *BlockHeader) Serialize() ([]byte, error)
- func (blk *BlockHeader) SetValidated()
- func (blk *BlockHeader) SigningBytes() ([]byte, error)
- func (blk *BlockHeader) ToStorageBlock() (block.Block, error)
- func (t *BlockHeader) UnmarshalCBOR(r io.Reader) error
- type BlockMsg
- type ChainMsg
- type ElectionProof
- type ExecutionTrace
- type ExpTipSet
- type FIL
- type FullBlock
- type GasTrace
- type KeyInfo
- type KeyStore
- type Loc
- type LogCids
- type Message
- func (m *Message) Caller() address.Address
- func (m *Message) ChainLength() int
- func (m *Message) Cid() cid.Cid
- func (m *Message) EqualCall(o *Message) bool
- func (m *Message) Equals(o *Message) bool
- func (t *Message) MarshalCBOR(w io.Writer) error
- func (m *Message) Receiver() address.Address
- func (m *Message) RequiredFunds() BigInt
- func (m *Message) Serialize() ([]byte, error)
- func (m *Message) ToStorageBlock() (block.Block, error)
- func (t *Message) UnmarshalCBOR(r io.Reader) error
- func (m *Message) VMMessage() *Message
- func (m *Message) ValidForBlockInclusion(minGas int64) error
- func (m *Message) ValueReceived() abi.TokenAmount
- type MessageReceipt
- type MpoolConfig
- type MsgMeta
- type SignedMessage
- func (sm *SignedMessage) ChainLength() int
- func (sm *SignedMessage) Cid() cid.Cid
- func (t *SignedMessage) MarshalCBOR(w io.Writer) error
- func (sm *SignedMessage) Serialize() ([]byte, error)
- func (sm *SignedMessage) Size() int
- func (sm *SignedMessage) ToStorageBlock() (block.Block, error)
- func (t *SignedMessage) UnmarshalCBOR(r io.Reader) error
- func (sm *SignedMessage) VMMessage() *Message
- type StateTree
- type Storage
- type Ticket
- type TipSet
- func (ts *TipSet) Blocks() []*BlockHeader
- func (ts *TipSet) Cids() []cid.Cid
- func (ts *TipSet) Contains(oc cid.Cid) bool
- func (ts *TipSet) Equals(ots *TipSet) bool
- func (ts *TipSet) Height() abi.ChainEpoch
- func (ts *TipSet) IsChildOf(parent *TipSet) bool
- func (ts *TipSet) Key() TipSetKey
- func (ts *TipSet) MarshalCBOR(w io.Writer) error
- func (ts *TipSet) MarshalJSON() ([]byte, error)
- func (ts *TipSet) MinTicket() *Ticket
- func (ts *TipSet) MinTicketBlock() *BlockHeader
- func (ts *TipSet) MinTimestamp() uint64
- func (ts *TipSet) ParentState() cid.Cid
- func (ts *TipSet) ParentWeight() BigInt
- func (ts *TipSet) Parents() TipSetKey
- func (ts *TipSet) String() string
- func (ts *TipSet) UnmarshalCBOR(r io.Reader) error
- func (ts *TipSet) UnmarshalJSON(b []byte) error
- type TipSetKey
Constants ¶
const BigIntMaxSerializedLen = 128 // is this big enough? or too big?
const MessageVersion = 0
const TestGasLimit = 100e6
Variables ¶
var ( ErrKeyInfoNotFound = fmt.Errorf("key info not found") ErrKeyExists = fmt.Errorf("key already exists") )
var EmptyInt = BigInt{}
var EmptyTSK = TipSetKey{}
var ErrActorNotFound = errors.New("actor not found")
var MaxWinCount = 3 * int64(build.BlocksPerEpoch)
var TotalFilecoinInt = FromFil(build.FilBase)
Functions ¶
func CidArrsContains ¶ added in v0.3.0
func CidArrsContains(a []cid.Cid, b cid.Cid) bool
func CidArrsEqual ¶
func CidArrsEqual(a, b []cid.Cid) bool
func CidArrsSubset ¶ added in v0.5.0
func CidArrsSubset(a, b []cid.Cid) bool
func DecodeSignedVoucher ¶
func DecodeSignedVoucher(s string) (*paych.SignedVoucher, error)
Types ¶
type Actor ¶
type Actor struct { // Identifies the type of actor (string coded as a CID), see `chain/actors/actors.go`. Code cid.Cid Head cid.Cid Nonce uint64 Balance BigInt }
func (*Actor) IsAccountActor ¶ added in v0.3.0
type BeaconEntry ¶ added in v0.3.0
func NewBeaconEntry ¶ added in v0.3.0
func NewBeaconEntry(round uint64, data []byte) BeaconEntry
func (*BeaconEntry) MarshalCBOR ¶ added in v0.3.0
func (t *BeaconEntry) MarshalCBOR(w io.Writer) error
func (*BeaconEntry) UnmarshalCBOR ¶ added in v0.3.0
func (t *BeaconEntry) UnmarshalCBOR(r io.Reader) error
type BlockHeader ¶
type BlockHeader struct { Miner address.Address // 0 Ticket *Ticket // 1 ElectionProof *ElectionProof // 2 BeaconEntries []BeaconEntry // 3 WinPoStProof []abi.PoStProof // 4 Parents []cid.Cid // 5 ParentWeight BigInt // 6 Height abi.ChainEpoch // 7 ParentStateRoot cid.Cid // 8 ParentMessageReceipts cid.Cid // 8 Messages cid.Cid // 10 BLSAggregate *crypto.Signature // 11 Timestamp uint64 // 12 BlockSig *crypto.Signature // 13 ForkSignaling uint64 // 14 // ParentBaseFee is the base fee after executing parent tipset ParentBaseFee abi.TokenAmount // 15 // contains filtered or unexported fields }
func DecodeBlock ¶
func DecodeBlock(b []byte) (*BlockHeader, error)
func (*BlockHeader) Cid ¶
func (blk *BlockHeader) Cid() cid.Cid
func (*BlockHeader) IsValidated ¶ added in v0.3.1
func (blk *BlockHeader) IsValidated() bool
func (*BlockHeader) LastTicket ¶
func (blk *BlockHeader) LastTicket() *Ticket
func (*BlockHeader) MarshalCBOR ¶
func (t *BlockHeader) MarshalCBOR(w io.Writer) error
func (*BlockHeader) Serialize ¶
func (blk *BlockHeader) Serialize() ([]byte, error)
func (*BlockHeader) SetValidated ¶ added in v0.3.1
func (blk *BlockHeader) SetValidated()
func (*BlockHeader) SigningBytes ¶
func (blk *BlockHeader) SigningBytes() ([]byte, error)
func (*BlockHeader) ToStorageBlock ¶
func (blk *BlockHeader) ToStorageBlock() (block.Block, error)
func (*BlockHeader) UnmarshalCBOR ¶
func (t *BlockHeader) UnmarshalCBOR(r io.Reader) error
type BlockMsg ¶
type BlockMsg struct { Header *BlockHeader BlsMessages []cid.Cid SecpkMessages []cid.Cid }
func DecodeBlockMsg ¶
type ElectionProof ¶ added in v0.3.0
func (*ElectionProof) ComputeWinCount ¶ added in v0.5.0
func (ep *ElectionProof) ComputeWinCount(power BigInt, totalPower BigInt) int64
ComputeWinCount uses VRFProof to compute number of wins The algorithm is based on Algorand's Sortition with Binomial distribution replaced by Poisson distribution.
func (*ElectionProof) MarshalCBOR ¶ added in v0.3.0
func (t *ElectionProof) MarshalCBOR(w io.Writer) error
func (*ElectionProof) UnmarshalCBOR ¶ added in v0.3.0
func (t *ElectionProof) UnmarshalCBOR(r io.Reader) error
type ExecutionTrace ¶ added in v0.4.0
type ExecutionTrace struct { Msg *Message MsgRct *MessageReceipt Error string Duration time.Duration GasCharges []*GasTrace Subcalls []ExecutionTrace }
type ExpTipSet ¶
type ExpTipSet struct { Cids []cid.Cid Blocks []*BlockHeader Height abi.ChainEpoch }
type FIL ¶
type FIL BigInt
func (FIL) MarshalText ¶ added in v0.5.0
func (FIL) UnmarshalText ¶ added in v0.5.0
type FullBlock ¶
type FullBlock struct { Header *BlockHeader BlsMessages []*Message SecpkMessages []*SignedMessage }
type GasTrace ¶ added in v0.4.0
type GasTrace struct { Name string Location []Loc `json:"loc"` TotalGas int64 `json:"tg"` ComputeGas int64 `json:"cg"` StorageGas int64 `json:"sg"` TotalVirtualGas int64 `json:"vtg"` VirtualComputeGas int64 `json:"vcg"` VirtualStorageGas int64 `json:"vsg"` TimeTaken time.Duration `json:"tt"` Extra interface{} `json:"ex,omitempty"` Callers []uintptr `json:"-"` }
func (*GasTrace) MarshalJSON ¶ added in v0.4.0
type KeyStore ¶
type KeyStore interface { // List lists all the keys stored in the KeyStore List() ([]string, error) // Get gets a key out of keystore and returns KeyInfo corresponding to named key Get(string) (KeyInfo, error) // Put saves a key info under given name Put(string, KeyInfo) error // Delete removes a key from keystore Delete(string) error }
KeyStore is used for storing secret keys
type LogCids ¶
type LogCids []cid.Cid
func (LogCids) MarshalLogArray ¶
func (cids LogCids) MarshalLogArray(ae zapcore.ArrayEncoder) error
type Message ¶
type Message struct { Version uint64 To address.Address From address.Address Nonce uint64 Value abi.TokenAmount GasLimit int64 GasFeeCap abi.TokenAmount GasPremium abi.TokenAmount Method abi.MethodNum Params []byte }
func DecodeMessage ¶
func (*Message) ChainLength ¶ added in v0.3.0
func (*Message) RequiredFunds ¶
func (*Message) ValidForBlockInclusion ¶ added in v0.3.0
func (*Message) ValueReceived ¶ added in v0.3.0
func (m *Message) ValueReceived() abi.TokenAmount
type MessageReceipt ¶
func (*MessageReceipt) Equals ¶
func (mr *MessageReceipt) Equals(o *MessageReceipt) bool
func (*MessageReceipt) MarshalCBOR ¶
func (t *MessageReceipt) MarshalCBOR(w io.Writer) error
func (*MessageReceipt) UnmarshalCBOR ¶
func (t *MessageReceipt) UnmarshalCBOR(r io.Reader) error
type MpoolConfig ¶ added in v0.5.0
type MpoolConfig struct { PriorityAddrs []address.Address SizeLimitHigh int SizeLimitLow int ReplaceByFeeRatio float64 PruneCooldown time.Duration GasLimitOverestimation float64 }
func (*MpoolConfig) Clone ¶ added in v0.5.0
func (mc *MpoolConfig) Clone() *MpoolConfig
type SignedMessage ¶
func DecodeSignedMessage ¶
func DecodeSignedMessage(data []byte) (*SignedMessage, error)
func (*SignedMessage) ChainLength ¶ added in v0.3.0
func (sm *SignedMessage) ChainLength() int
func (*SignedMessage) Cid ¶
func (sm *SignedMessage) Cid() cid.Cid
func (*SignedMessage) MarshalCBOR ¶
func (t *SignedMessage) MarshalCBOR(w io.Writer) error
func (*SignedMessage) Serialize ¶
func (sm *SignedMessage) Serialize() ([]byte, error)
func (*SignedMessage) Size ¶
func (sm *SignedMessage) Size() int
func (*SignedMessage) ToStorageBlock ¶
func (sm *SignedMessage) ToStorageBlock() (block.Block, error)
func (*SignedMessage) UnmarshalCBOR ¶
func (t *SignedMessage) UnmarshalCBOR(r io.Reader) error
func (*SignedMessage) VMMessage ¶
func (sm *SignedMessage) VMMessage() *Message
type Storage ¶
type Storage interface { Put(cbg.CBORMarshaler) (cid.Cid, aerrors.ActorError) Get(cid.Cid, cbg.CBORUnmarshaler) aerrors.ActorError GetHead() cid.Cid // Commit sets the new head of the actors state as long as the current // state matches 'oldh' Commit(oldh cid.Cid, newh cid.Cid) aerrors.ActorError }
type TipSet ¶
type TipSet struct {
// contains filtered or unexported fields
}
func NewTipSet ¶
func NewTipSet(blks []*BlockHeader) (*TipSet, error)
Checks:
- A tipset is composed of at least one block. (Because of our variable number of blocks per tipset, determined by randomness, we do not impose an upper limit.)
- All blocks have the same height.
- All blocks have the same parents (same number of them and matching CIDs).
func (*TipSet) Blocks ¶
func (ts *TipSet) Blocks() []*BlockHeader
func (*TipSet) Height ¶
func (ts *TipSet) Height() abi.ChainEpoch
func (*TipSet) MarshalJSON ¶
func (*TipSet) MinTicketBlock ¶
func (ts *TipSet) MinTicketBlock() *BlockHeader
func (*TipSet) MinTimestamp ¶
func (*TipSet) ParentState ¶
func (ts *TipSet) ParentState() cid.Cid
func (*TipSet) ParentWeight ¶
func (*TipSet) UnmarshalJSON ¶
type TipSetKey ¶
type TipSetKey struct {
// contains filtered or unexported fields
}
A TipSetKey is an immutable collection of CIDs forming a unique key for a tipset. The CIDs are assumed to be distinct and in canonical order. Two keys with the same CIDs in a different order are not considered equal. TipSetKey is a lightweight value type, and may be compared for equality with ==.
func NewTipSetKey ¶
func NewTipSetKey(cids ...cid.Cid) TipSetKey
NewTipSetKey builds a new key from a slice of CIDs. The CIDs are assumed to be ordered correctly.
func TipSetKeyFromBytes ¶
TipSetKeyFromBytes wraps an encoded key, validating correct decoding.
func (TipSetKey) Cids ¶
func (k TipSetKey) Cids() []cid.Cid
Cids returns a slice of the CIDs comprising this key.