Litentry Collator

Litentry平行链Collator

Litentry 的Collator(https://wiki.polkadot.network/docs/learn-collator)保存了所有必要的信息,以便对交易进行整理并执行,以创建未封装的区块,并将其与状态转换的证明一起提供给一个或多个负责提议Parachain区块的中继链验证者。

Collator还将观察BABE中区块生成和共识协议的进展,并建立在他们认为将会被最终确定的最新中继链区块上。碼表不直接参与中继链的共识,因此永远不会抵押DOT。

要成为碼表并开始撰写区块,必须拥有有效的会话密钥,该密钥可以在初始基因配置中设置为invulnerables,或者通过Parachain-Staking Pallet选择。

Litentry Collator模型

Litentry 使用委托证明的权益证明(DPoS)Collator模型,用户可以投票并选出代表来撰写下一个区块。使用DPoS,您可以通过将代币抵押给特定的代表来投票,而不是运行碼表以获得奖励。当所选的代表成功生成区块时,您也将分享区块生产奖励。

Litentry 采取了一种分阶段的方法来展开Collator设置。基本上说,有5个阶段:

  1. 迁移Collator选择机制和Collator碼表(用Parachain-Staking Pallet替换Collator-Selection Pallet)

  2. 初始Collator集扩展:开放一些额外的Collator槽并观察区块生产

  3. 调整代币经济模型以准备抵押功能

  4. 启用抵押委托

  5. 扩大Collator集大小(根据网络状态为16或32个Collator)

您可以在此Github问题中跟踪展开进度。

区块生产奖励

为了与Collator抵押模型协调,我们重新设计了代币经济模型,以允许Collator及其后援用户分享区块生产奖励。

简要介绍:

  • 在启用抵押功能后的1,296,000个区块(约为6个月)中,将目标设置为每年1.5%的通货膨胀率,其中0.5%用于激励Collator,1%用於抵押LIT代币的用户

  • 在区块1,296,001之後,将应用2.5%的年通胀率,其中0.5%用于激励Collator,2%用于抵押LIT代币的用户

  • 每季将从生态系统钱包中烧毁568,750 LIT,并持续八個季度(两年)

新的代币经济模型在Litmus上进行了讨论和投票,因为Litentry还没有启用治理,但结果将在Litentry上手动实施。

运行Collator的要求

硬件要求

Polkadot验证器参考硬件相同

绑定要求

加入收集器候选池并有资格被选中以作者区块时,有一个最低(自我)绑定。目前设置为5000 LIT,您将在通过parachainStaking.joinCandidates加入候选池时必须指定绑定金额。

白名单

在我们完全激活DPoS模型之前,Collator集由Litentry团队的白名单管理。这意味着您需要将Collator帐户添加到白名单中,才能加入候选池。有关更多详细信息,请参阅Litentry Collator模型

如何运行Collator

使用docker(首选)

  1. 创建一个本地目录来存储链数据库:

mkdir /var/lib/litentry
# 如果没有权限,则使用sudo
sudo mkdir /var/lib/litentry
  1. 确保本地目录的权限和所有权正确设置:

sudo chown -R $(id -u):$(id -g) /var/lib/litentry
  1. 运行以下docker命令,您可以用自己的节点名称替换--name="litentry-collator"

docker run -d --network=host -v /var/lib/litentry:/data \
    -u $(id -u):$(id -g) \
    litentry/litentry-parachain:v0.9.11  \
    --base-path=/data \
    --chain=litentry \
    --name="litentry-collator" \
    --collator \
    --execution wasm \
    --state-cache-size 0 \
    -- \
    --execution wasm \
    --chain polkadot

litentry/litentry-parachain:v0.9.11用作示例,请查看github发布页面以获取最新发布版本。

该命令将在后台运行docker容器,容器ID将在控制台中打印出来。使用docker logs -f <container-id>,您应该能够看到节点开始同步:

等待同步完成,根据硬件和网络状态,完全同步parachain和relaychain数据库可能需要几天时间。

  1. author_rotateKeys方法向parachain的http端点发送RPC调用来生成会话密钥:

curl http://127.0.0.1:9933 -H \
"Content-Type:application/json;charset=utf-8" -d \
  '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"author_rotateKeys",
    "params": []
  }'

如下是结果示例:

{"jsonrpc":"2.0","result":"0x56066a71efc51e4a6f0f838cac959a08b238e22d478bd5dc0cdc2ac5b40d2e66","id":1}

记下结果,这是您的会话密钥。在本例中,会话密钥为0x56066a71efc51e4a6f0f838cac959a08b238e22d478bd5dc0cdc2ac5b40d2e66

另外,您也可以使用author_insertKey来插入预先生成的会话密钥。litentry-parachain的会话密钥是一个sr25519 aura密钥。

  1. 将您的collator帐户绑定到生成的会话密钥,包括:

  • 准备一个litentry-parachain帐户。此帐户将被注册以接收块生产奖励。

  • 通过提交外部session.setKeys从collator帐户将此帐户绑定到步骤4生成的会话密钥:

参数:

密钥:步骤4中的十六进制字符串密钥

证明:0x

  1. 通过提交外部parachainStaking.joinCandidates从collator帐户请求加入collator候选人:

要能够成功加入collator候选人,您必须:

  • 质押最低保证金

  • 由管理员添加到候选人白名单(一旦DPoS完全激活,白名单将被删除,请参阅Litentry collator model

  1. 检查您的节点实际上是否开始汇集

一旦外部没有错误地发送,请等待下一个回合开始,您应该能够看到您的节点开始生成块:

您应该看到您的节点根据发出的事件不时被选中来撰写块:

如果Collator在很长时间(约12小时)后仍然没有生成块,而您认为一切都正确设置,请尝试重新启动节点。

恭喜!您已经成功运行了一个collator节点,开始为litentry parachain生成块!

使用二进制文件

使用原始二进制文件运行collator节点与上面的docker设置非常相似,只是命令行参数有所不同。因此,替换使用docker(首选)中的步骤1-3,运行:

./target/release/litentry-collator \
    --chain=litentry \
    --name="litentry-collator" \
    --collator \
    --execution wasm \
    --state-cache-size 0 \
    -- \
    --execution wasm \
    --chain polkadot

默认情况下,数据库存储在~/.local/share/中,您可以通过使用--base-path=<your-path>来覆盖它。

要获取二进制文件,您可以直接从Litentry的Github发布页面仅限Linux x86-64)下载,或者从源代码构建它。

配置会话密钥和加入汇集的其余步骤与docker方法相同,因此不在此重复。

如何更新客户端

Litentry不断努力改进parachain客户端并跟随上游变化。因此,更新客户端以获得最新功能和安全补丁并不罕见。更新客户端很简单:

如果使用docker:

  1. docker container stop <container-id>

  2. 使用docker(首选)中的步骤3中运行docker命令,使用所需的docker镜像版本

如果使用二进制文件:

  1. 停止/杀死litentry-collator进程

  2. 下载所需的二进制文件

  3. 使用使用二进制文件中的命令启动新的二进制文件

Last updated