首页 > EOS柚子 > 正文

go-filecoin中的重要数据结构

星际联盟Filecoin 2019-11-19 11:14

  

本文作者:星际联盟 原创作品,转载请注明出处

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”等几种类型

属性名称类型说明CodeCid本角色实现的Filecoin虚拟机代码的Cid,代表了角色的类型HeadCid本角色的状态树的头的CidNonceUint64下一条从本角色发出的消息的期望序列号BalanceAttoFIL本角色的账号的余额
Block

代表的区块的核心属性

属性名称类型说明MinerAddress挖出本区块的矿工的地址ParentsTipSetKey本区块的父区块集合,父区块可能超过一个ParentWeightUint64父区块集合的聚合链权重HeightUint64本区块的高度MessagesCid本区块所含的消息集合的CidMessageReceiptsCid与Messages匹配的receipt集合CidTimestampUint64本区块被创建时的时间戳BlockSigSignature矿工的worker key对本区块的签名
FullBlock

完整的区块定义

属性名称类型说明Header*Block区块的头部信息Messages[]*Message区块内打包的消息列表Receipts[]*MessageReceipt区块内打包的receipt列表
Message

消息是两个角色间的信息交换,是在目标角色上的一次函数调用,等价于以太坊中的合约。
消息的作用包括“转移Fil币”、“调用目标暴露的函数”、或者两者都有。
消息的Value的值若不为0,则会将相应的Fil币转移给To代表的地址;Method不为空,则会调用目标角色的相应函数。每种角色所暴露出的函数列表都不同。

属性名称类型说明FromAddress消息的来源地址ToAddress消息的接收地址Methodstring调用目标角色的方法Params[]byte传递的参数ValueAttoFIL消息携带的值GasPriceAttoFIL为开采该消息消耗的每个gas单位所支付的价格GasLimitUint64本消息允许消耗的最大gas单位SignatureSignature消息的签名
MessageReceipt属性名称类型说明ExitCodeuint8消息的调用方法返回的unix风格的退出码,0代表成功,其它表示出错Return[][]byte消息处理的返回值,出错也可能不为空GasAttoFILAttoFIL发送方转移用于处理消息的实际花费的币的数量

  
作者:星际联盟IPFSUNION
链接:https://www.jianshu.com/p/8f15ff275606
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  

阅读更多

上一篇:Filecoin是新世界的土地和房子——李彦东

下一篇:IPFS/Filecoin什么时候布局才是最佳时机?

您可能喜欢:

关于我们联系我们作者投稿
Copyright © 2013 比特巴手机版
币圈人都爱上的网站,新闻行情教程人物测评资讯大全