本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)
创世纪文件
本页描述了 genesis.json
文件的详细信息。
创世纪 JSON 文件结构
下表描述了 genesis.json
文件结构。
字段名称 | 说明 |
---|---|
config | blokchain 配置。 请参阅 配置 部分。 |
nonce | (已废弃)该字段源于以太坊,但不用于 Kaia。 |
timestamp | 块创建时的 unix 时间。 |
extraData | 数据组合字段,用于签名者虚荣和 RLP 编码的伊斯坦布尔额外数据,其中包含验证者列表、提议者封印和提交封印。 |
gasLimit | 区块中使用的最大气体量。 |
difficulty | (已废弃)该字段源于以太坊,但不用于 Kaia。 |
mixhash | (已废弃)该字段源于以太坊,但不用于 Kaia。 |
coinbase | 矿工领取奖励的地址。 该字段仅用于 Clique 共识引擎。 |
alloc | 预定义账户。 |
number | 区块编号字段。 |
gasUsed | 一个区块使用的气体量。 |
parentHash | 前一个区块的哈希值。 |
Config
配置 "字段存储与链相关的信息。
字段名称 | 说明 |
---|---|
chainId | 它能识别当前链,用于防止重放攻击。 |
istanbulCompatibleBlock | 适用伊斯坦布尔变更的区块编号。 |
istanbul, clique | 共识引擎的类型。 |
unitPrice | 单位价格。 |
deriveShaImpl | 定义生成交易哈希值和收据哈希值的方法。 |
governance | 网络管理信息。 参见 治理部分 |
extraData
字段 extraData
是提议者虚名和 RLP 编码的伊斯坦布尔额外数据的连接:
- 建议者虚名是 32 字节数据,包含任意建议者虚名数据。
- 其余数据为 RLP 编码的伊斯坦布尔额外数据,包含
- 验证器:按升序排列的验证器列表。
- 印章:提案人在页眉上的签名。 对于
genesis.json
,它是一个以 650x0
初始化的字节数组。 - CommittedSeal:作为共识证明的承诺签名印章列表。 对于
genesis.json
,它是一个空数组。
举例
现场 | 类型 | 价值 |
---|---|---|
虚荣 | 32 字节十六进制字符串 | 0x0000000000000000000000000000000000000000000000000000000000000000 |
Validators | []address | [0x48009b4e20ec72aadf306577cbe2eaf54b0ebb16,0x089fcc42fd83baeee4831319375413b8bae3aceb] |
Seal | 由 65 个元素组成的字节数组 | [0x0,...,0x0] |
CommittedSeal | [][]byte | [] |
创建包含上述数据的 extraData
的方法是
concat('0x',Vanity,RLPEncode({Validators,Seal,CommittedSeal}))
其中,concat
是字符串连接函数,RLPEncode
是将给定结构转换为 RLP 编码字符串的函数。
With this function, the output extraData
for this example is 0x0000000000000000000000000000000000000000000000000000000000000000f86fea9448009b4e20ec72aadf306577cbe2eaf54b0ebb1694089fcc42fd83baeee4831319375413b8bae3acebb8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0.
共识引擎
Kaia 网络可用的共识引擎有 Clique 和 Istanbul。 每个引擎的说明如下。
Clique
clique "字段存储基于授权证明(POA)的密封配置。
字段 | 说明 |
---|---|
period | 连续数据块之间的最小时间间隔(单位:秒)。 |
epoch | 重置投票并标记为检查点的区块数。 |
Istanbul
istanbul "字段存储基于伊斯坦布尔的密封配置。
字段 | 说明 |
---|---|
epoch | 重置选票的区块数即为检查点。 |
policy | 区块建议者遴选政策。 [0:循环赛,1:粘性赛,2:加权随机赛] |
sub | 委员会人数 |
Governance
治理 "字段存储网络的治理信息。
字段 | 说明 |
---|---|
governanceMode | 三种治理模式之一。 [none , single , ballot ] |
governingNode | 指定管理节点的地址。 只有当治理模式为 "单一 "时,它才会起作用。 |
reward | It stores the reward configuration. 请参阅 [奖励](#reward)部分。 |
Reward
奖励 "字段存储有关网络代币经济的信息。
字段 | 说明 |
---|---|
mintingAmount | 生成区块时铸造的金币数量。 数值需要双引号。 |
ratio | 用"/"分隔的 "CN/KIR/PoC "的分配率。 所有值的总和必须是 100。 |
useGiniCoeff | 是否使用 GINI 系数 |
deferredTxFee | 分配区块 TX 费用的方法。 |
stakingUpdateInterval | 更新定标信息的时间间隔(块高度)。 |
proposerUpdateInterval | 更新提案人信息的时间间隔(块高度)。 |
minimumStake | 加入核心单元操作员的最低金额。 |
示例
{ "config": { "chainId": 2019, "istanbulCompatibleBlock": 0, "istanbul": { "epoch": 604800, "policy": 2, "sub": 13 }, "unitPrice": 25000000000, "deriveShaImpl": 2, "governance": { "governingNode": "0x46b0bd6380005952759f605d02a6365552c776f3", "governanceMode": "single", "reward": { "mintingAmount": 6400000000000000000, "ratio": "50/40/10", "useGiniCoeff": true, "deferredTxFee": true, "stakingUpdateInterval": 86400, "proposerUpdateInterval": 3600, "minimumStake": 5000000 } } }, "nonce": "0x0", "timestamp": "0x5c9af60e", "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000f89af85494aeae0ab623d4118ac62a2decc386949b5ce67ce29446b0bd6380005952759f605d02a6365552c776f394699b607851c878e29499672f42a769b71f74be8e94e67598eb5831164574c876994d53f63eab4f36d7b8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", "gasLimit": "0xe8d4a50fff", "difficulty": "0x1", "mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365", "coinbase": "0x0000000000000000000000000000000000000000", "alloc": { "0000000000000000000000000000000000000400": { "code": "0x6080604052600436106101505763ffffffff60e00a165627a7a7230582093756fe617053766b158f7c64998c746eb38f0d5431cc50231cc9fb2cd1fd9950029", "balance": "0x0" }, "46b0bd6380005952759f605d02a6365552c776f3": { "balance": "0x446c3b15f9926687d2c40534fdb564000000000000" }, "699b607851c878e29499672f42a769b71f74be8e": { "balance": "0x446c3b15f9926687d2c40534fdb564000000000000" }, "aeae0ab623d4118ac62a2decc386949b5ce67ce2": { "balance": "0x446c3b15f9926687d2c40534fdb564000000000000" }, "e67598eb5831164574c876994d53f63eab4f36d7": { "balance": "0x446c3b15f9926687d2c40534fdb564000000000000" } }, "number": "0x0", "gasUsed": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"}