您的位置: 首页 > 星驰资讯 > 挖矿课堂

go-filecoin中的重要数据结构

2020-03-23 09:26:52  阅读:人  来自:挖矿课堂

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 发送方转移用于处理消息的实际花费的币的数量

IPFS星际联盟

链接:https://www.ipfsunion.cn/news/class/50.html

来源:星际联盟Filecoin挖矿

声明:本站部分内容来源于网络转载,若有侵权,请及时与网站客服取得联系。

热门标签

在线客服