跳至主要内容
本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)

创世纪文件

本页描述了 genesis.json 文件的详细信息。

创世纪 JSON 文件结构

下表描述了 genesis.json 文件结构。

字段名称说明
configblokchain 配置。 请参阅 配置 部分。
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,它是一个以 65 0x0初始化的字节数组。
    • 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指定管理节点的地址。 只有当治理模式为 "单一 "时,它才会起作用。
rewardIt 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"
}

让这个页面变得更好