三分钟速览波卡实用指南:地址、事件与外部元素等

原文标题:《一些使用 Polkadot 的实用信息》
撰文:Polkadot
翻译:PolkaWorld 社区
,这篇文章是对 Polkadot 协议的概括介绍,主要会介绍 Polkadot 特有的术语、和其他链的显著区别以及使用 Polkadot 的实用信息。,在 Polkadot (和大多数 Substrate 链)中,用户帐户是一个 32 字节(256 位)的 AccountId。这是 Substrate 使用的加密的公钥。,Polkadot (和 Substrate)使用 SS58 地址格式。这是一种广泛的「元格式」,旨在处理许多不同的密码和链。它与比特币的 Base58Check 格式有很多共同点,比如版本前缀、基于哈希的校验后缀以及 base-58 编码。,有关编码和更全面的网络前缀列表的信息,请参见
Substrate wiki 中的 SS58 页面。,本指南的相关 SS58 前缀:(SS58 编码前),Polkadot 支持以下加密密钥对和签名算法:,请注意,secp256k1 密钥的地址是公钥哈希的 SS58 编码,以便将公钥从 33 字节减少到 32 字节。,波卡使用小额存款(ED:existential deposit)来防止灰尘帐户将状态挤爆。如果一个帐户低于 ED,它将被销毁,即完全从存储中删除,并将 nonce 值重置。,出于审计目的追踪账户 nonce 值的钱包和保管人应该注意不要让帐户销毁,因为用户可能会朝该地址退款,并尝试与其进行交易。余额模块提供
transfer_keep_alive 的功能(即在转账时保持账户存在的功能),使用了该功能后,如果一笔转账将导致销毁发送方的帐户,则会返回错误并中止交易,而不会进行转账。,帐户余额信息存储在 AccountData 中。Polkadot 主要处理两种类型的余额:自由余额(free balance)和保留余额(reserved balance)。,对于大多数操作,你可能感兴趣的是自由余额。例如,它是一个账户在 staking 和治理方面的「权力」。保留余额是指某项业务预留的资金,仍属于账户持有人,但不能使用。,锁仓(locks)是对自由余额的一种抽象,它暂时无法支出,只能用作某些特定目的。几个锁仓可以在同一个帐户上操作,但它们是重叠的而不是相加的。例如,一个账户可以有 200 DOTs 的自由余额,上面有两个锁仓:150 DOTs 用于转账,100 DOTs 用于保留备用。帐户不能进行导致自由余额低于 150 DOTs 的转账,但却可以通过跟保留余额相关的操作,导致自由账户低于 150 但高于 100 DOTs。,在治理公投中用于 staking 和投票的绑定代币都是锁仓的。,锁仓待释放的余额(Vesting)是另一种使用了锁仓的自由余额的抽象。Vesting 设定了一个锁仓,随着时间的推移,这个锁仓会减少,直到所有的资金都可以转移。,更多信息:,外部元素包含了来自外部世界的信息,它有三种形式:,作为基础设施提供者,你将几乎只处理已签名的交易。但是,你将在你解码的区块中看到其他外部元素。你可以在
Substrate 文档 中找到更多信息。,内在因素包含未被证明为真,但验证人基于某种合理性的方法对其达成了一致的信息。例如,时间戳无法被证明,但是验证人可以一致同意它在系统时钟的某个范围内。内在因素并没有在网络上 「八卦」,只有区块生产者将其插入到区块中。,已签名的交易包含发布交易的账户的签名,并且需要支付费用才能将交易包含在链上。由于在链上包含签名交易的价值可以在执行之前识别出来,因此它们可以在网络上的节点之间进行「八卦」,从而降低垃圾信息的风险。签名交易符合以太坊或比特币交易的概念。,某些交易不能由手续费帐户签名,并且使用未签名的交易。例如,当用户从有 DOT 的以太坊合约向新的 DOT 地址进行映射的时候,新地址还没有任何资金来支付费用。,外部元素可以是有限期的,也可以是永存的。交易负载包括一个区块号和一个区块哈希检查点,交易从该检查点开始有效,以及一个有效期(在某些地方也称为 「era」),该有效期表示交易有效的检查点之后的区块数。如果此有效性窗口内的区块中未包含外部项,则将从交易队列中丢弃它。,链只存储有限数量的先前区块哈希作为引用。你可以从链状态或元数据中查询这个名为 BlockHashCount 的参数。该参数在 genesis 设置为 2400 个区块(大约 4 小时)。如果有效期大于存储在链上的块的数量,那么只要有一个要检查的块(即有效期的最小值和块哈希计数),交易才有效。,使用 genesis 哈希将块检查点设置为零,有效期为零将使交易永存。,注意:如果一个帐户被销毁并且一个用户重新为该帐户提供资金,那么他们可以重放一个永存的交易。务必默认使用有限期的外部元素。,外部元素代表来自外部世界的信息,而事件则代表来自链的信息。外部元素可以触发事件。例如,当认领 staking 奖励时,staking 模块发出奖励事件,以告知用户账户的奖励金额。,Polkadot 使用基于 weight 的费用,与 gas 不同,它是在调度前收取的。用户还可以添加一笔 「小费」 来提高拥挤时段的交易优先级。有关更多信息,请参见
交易费页面。,Parity 的集成工具应该允许你处理解码的数据。如果你想绕过它们直接与链数据交互或实现自己的编解码器,Polkadot 使用
SCALE 编解码器 对区块和交易数据进行编码。,波卡的中继链不支持智能合约。,除了运行专用网络外,Polkadot 还有另外两个网络,在部署到 Polkadot 主网之前,你可以在其中测试基础结构。,如果没有相应的链上交易,帐户的余额是否可以更改?,不,但并非所有的余额变化都在一个交易中,有些是在事件中。你将需要运行一个存档节点并监听事件和交易以跟踪所有帐户活动。这尤其适用于锁仓的操作,如果你将余额计算为可消耗余额,即自由余额减去最大锁仓。,什么样的链深度被认为是 「安全的」?,波卡使用确定性的最终机制。一旦一个块完成,它就不能被还原,除非用硬分叉。为了取消 runtime 升级,Kusama 已经有了硬分叉,它还原了四个最终确定的块。使用 10 个区块的最终深度应该是安全的。,请注意,在 Polkadot 中,区块生成和终结是独立的过程,链可以有一个长的未完成区块头。,用户需要与任何智能合约交互吗?,不,用户直接与链的逻辑交互。,波卡有状态租赁吗?,没有,Polkadot 使用小额存款来防止灰尘帐户和其他经济机制,如为使用状态的操作锁定或保留代币。,来源链接:
wiki.polkadot.network,锁仓待释放的余额(Vesting)是另一种使用了锁仓的自由余额的抽象。Vesting 设定了一个锁仓,随着时间的推移,这个锁仓会减少,直到所有的资金都可以转移。,更多信息:,外部元素可以是有限期的,也可以是永存的。交易负载包括一个区块号和一个区块哈希检查点,交易从该检查点开始有效,以及一个有效期(在某些地方也称为 「era」),该有效期表示交易有效的检查点之后的区块数。如果此有效性窗口内的区块中未包含外部项,则将从交易队列中丢弃它。

原创文章,作者:PolkaWorld,如若转载,请注明出处:http://www.lianchaguan.com/archives/16302

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注