Node
代表一个Filecoin全节点,内部保存各种子模块,如ChainSubmodule,NetworkSubmodule,WalletSubmodule等。每一个子模块都可以为Node添加相应的能力。
Builder
是Filecoin节点构建过程的助手对象,内含“创世区块cid”和各种“构建选项”(如OfflineMode,IsRelay)等属性。通过build方法对Node进行构建并返回构建完成的Node对象。build内部会逐个构建Node对象的各个子模块。如调用buildNetwork构建NetworkSubmodule,调用buildChain构建ChainSubmodule等。
BuilderOpt
类型为 func(*Builder) error,代表一个用于构建Filecoin节点对象的选项。
对应Builder中的各种“构建选项”,都存在着一个返回BuilderOpt的函数,如函数OfflineMode返回一个BuilderOpt,后者可用来设置Builder对象的OfflineMode的属性,函数IsRelay返回的BuilderOpt可设置Builder的IsRelay属性。
AttoFIL
表示attofilecoin的度量,一个attofilecoin等于10-18个Fil,一个Fil代表一个Filecoin币。
Cid
Cid表示一个自描述的内容寻址的标识。与IPFS中一致,在Filecoin网络中将为每份文件数据生成唯一的Cid,这是为了方便Merkle去重以及直接通过内容快速索引数据。go-filecoin内的多种类型也会以Cid作为标识。
Address
代表Filecoin网络中的一个地址,表现为一个经过编码的字符串。可用于查询余额,导出和导入。
每一个地址都对应着一个协议,协议目前有四种,分别是ID,SECP256K1,Actor,BLS。
Actor
角色,是Filecoin系统内实体的核心抽象,个人账户和合约(用户&系统层面)都表现为一个角色。一个角色拥有下列在系统层面上实现的核心功能:
利用Balance字段追踪Filecoin余额
执行存储在Code字段里的代码
读取和写入内存
使用Nonce字段进行“重放保护”
发送给一个不存在的地址的值会被当作一个空角色进行追踪,这个角色拥有Balance但Code和Memory为空
非并发访问安全的
角色目前存在“AccountActor”、“StorageMarketActor”、“PaymentBrokerActor”、“MinerActor”“MinerActor”、“InitActor”等几种类型
属性名称 | 类型 | 说明 |
---|---|---|
Code | Cid | 本角色实现的Filecoin虚拟机代码的Cid,代表了角色的类型 |
Head | Cid | 本角色的状态树的头的Cid |
Nonce | Uint64 | 下一条从本角色发出的消息的期望序列号 |
Balance | AttoFIL | 本角色的账号的余额 |
Block
代表的区块的核心属性
属性名称 | 类型 | 说明 |
---|---|---|
Miner | Address | 挖出本区块的矿工的地址 |
Parents | TipSetKey | 本区块的父区块集合,父区块可能超过一个 |
ParentWeight | Uint64 | 父区块集合的聚合链权重 |
Height | Uint64 | 本区块的高度 |
Messages | Cid | 本区块所含的消息集合的Cid |
MessageReceipts | Cid | 与Messages匹配的receipt集合Cid |
Timestamp | Uint64 | 本区块被创建时的时间戳 |
BlockSig | Signature | 矿工的worker key对本区块的签名 |
FullBlock
完整的区块定义
属性名称 | 类型 | 说明 |
---|---|---|
Header | *Block | 区块的头部信息 |
Messages | []*Message | 区块内打包的消息列表 |
Receipts | []*MessageReceipt | 区块内打包的receipt列表 |
Message
消息是两个角色间的信息交换,是在目标角色上的一次函数调用,等价于以太坊中的合约。
消息的作用包括“转移Fil币”、“调用目标暴露的函数”、或者两者都有。
消息的Value的值若不为0,则会将相应的Fil币转移给To代表的地址;Method不为空,则会调用目标角色的相应函数。每种角色所暴露出的函数列表都不同。
属性名称 | 类型 | 说明 |
---|---|---|
From | Address | 消息的来源地址 |
To | Address | 消息的接收地址 |
Method | string | 调用目标角色的方法 |
Params | []byte | 传递的参数 |
Value | AttoFIL | 消息携带的值 |
GasPrice | AttoFIL | 为开采该消息消耗的每个gas单位所支付的价格 |
GasLimit | Uint64 | 本消息允许消耗的最大gas单位 |
Signature | Signature | 消息的签名 |
MessageReceipt
属性名称 | 类型 | 说明 |
---|---|---|
ExitCode | uint8 | 消息的调用方法返回的unix风格的退出码,0代表成功,其它表示出错 |
Return | [][]byte | 消息处理的返回值,出错也可能不为空 |
GasAttoFIL | AttoFIL | 发送方转移用于处理消息的实际花费的币的数量 |
[ID:ipfsunion6]
扫描二维码
关注官方公众号