Totle 是什么?—— DeFi 科普系列
Totle 是什么?—— DeFi 科普系列
外部信息(extrinsic)是一条来自链外并包含在一个区块中的信息。外部信息可分为三类:inherents、已署名生意业务和未署名生意业务。
注重事宜(events[1])不是外部信息。链针对链自身固有的信息片断发出事宜。比方,Staking 嘉奖是事宜,而不是外部行动,因为嘉奖是由链逻辑固有的情况触发的。
区块构造
Substrate 中的一个区块由区块头和一组外部信息数组组成。区块头包含区块高度、父哈希、外部信息根、状况根和择要。本节仅关注外部信息根(extrinsics root)。
在 runtime 中定义每一个外部信息时,将其作为一个系列绑缚在一起,作为一个系列实行。外部信息根是该系列的密码学择要。这有两个目标。起首,它能够防备在区块头已构成并分发后,对外部信息系列举行任何变动。其次,它供应了一种要领,许可轻客户端仅经由过程相识区块头,就能够简约地考证任何给定的外部元素确切存在于一个块中。
区块参考资料[2]
Inherents
Inherents 是未署名的信息,仅由出块者插进去到区块中。它们不会被漫衍在收集上,也不存储在生意业务行列中。从技术上讲,没有什么会去阻挠一条 Substrate 链漫衍 inherents,但也不会有基于用度的防垃圾机制。
Inherents 示意以一种数据,它以比较迥殊的体式格局形貌很多有用信息之一。它们之所以被以为是 “实在的”,仅仅是因为足够多的考证人都赞同它们是合理的。
比方,出块者大概会将时候戳 inherent 插进去区块中。没有办法证实署名是实在的,证实时候戳是准确的。但考证人根据其他考证人以为时候戳的合理水平,来接收或谢绝该区块,根据多是该时候戳在其本身的体系时钟的某个可接收范围内。
Inherents Reference[3]
已署名生意业务
已署名生意业务(Singed Transactions)包含发出生意业务的帐户的署名,而且须要付费才能将生意业务包含在链中。因为能够在实行之前辨认出在链上包含已署名生意业务的代价,所以能够在收集上垃圾生意业务风险较低的节点之间的漫衍这些生意业务。
署名生意业务相符以太坊或比特币生意业务的观点。
未署名生意业务
在某些情况下,须要举行未署名生意业务 (Unsigned Transactions)。警惕运用未署名的事件,因为它们的考证逻辑大概很难。
因为生意业务未署名,因而无需付出任何用度。因而,生意业务行列缺少防备垃圾生意业务的经济逻辑。未署名的生意业务也缺少随机数,使得重放庇护(Replay protection)变得难题。少数生意业务须要运用未署名的变体,然则它们将须要某种情势的垃圾生意业务防护,防护基于 Singed Extension[4] 的自定义完成,能够存在于未署名生意业务中。
Substrate 中未署名生意业务的一个示例是权威机构发送的 “I'm Online[5]”心跳生意业务。生意业务包含来自 Session 密钥的署名,该密钥不掌握资金,因而没法付出用度。生意业务池经由过程搜检 session 中是不是已提谈心跳来掌握垃圾生意业务。
署名扩大
SignedExtension 是一种特性(trait),经由过程它能够运用其他数据或逻辑来扩大生意业务。署名扩大名可用于您须要在实行之前取得有关生意业务的一些信息的任何地方。这在事件行列中大批运用。
Runtime 能够运用个中一些数据(比方将要分配的 Call)来盘算生意业务用度。署名扩大还包含 AdditionalSigned 范例,该范例能够保留任何可编码数据,因而许可您在包含或分配生意业务之前实行任何自定义逻辑。生意业务行列按期从 SignedExtension 挪用函数以在构建区块之前考证生意业务,以防止包含将在区块中失利的生意业务。
虽然名字叫署名扩大,SignedExtension 实在也能够用于考证未署名生意业务。能够完成 * _unsigned 要领集来封装生意业务池所需的考证、垃圾邮件和重放庇护逻辑。
Signed Extension Reference[6]
参考资料
[1] events: https://substrate.dev/docs/en/knowledgebase/runtime/events
[2] 区块参考资料: https://substrate.dev/rustdocs/v2.0.0-rc4/sp_runtime/traits/trait.Block.html
[3] Inherents Reference: https://substrate.dev/rustdocs/v2.0.0-rc4/sp_inherents/index.html
[4] Singed Extension: https://substrate.dev/docs/en/knowledgebase/learn-substrate/extrinsics#signed-extension
[5] I'm Online: https://substrate.dev/docs/en/knowledgebase/runtime/frame#im-online
[6] Signed Extension Reference: https://substrate.dev/rustdocs/v2.0.0-rc4/sp_runtime/traits/trait.SignedExtension.html
[7] 参考文档: https://substrate.dev/rustdocs/v2.0.0-rc4/sp_runtime/traits/trait.Extrinsic.html
[8] Runtime Execution: https://substrate.dev/docs/en/knowledgebase/runtime/execution
[9] 生意业务用度: https://substrate.dev/docs/en/knowledgebase/runtime/fees
[10] 生意业务池: https://substrate.dev/docs/en/knowledgebase/learn-substrate/tx-pool
原文:https://substrate.dev/docs/en/knowledgebase/learn-substrate/extrinsics
翻译:PolkaWorld
迎接进修 Substrate:
https://substrate.dev/
关注 Substrate 希望:
https://github.com/paritytech/substrate
关注 Polkadot 希望:
https://github.com/paritytech/polkadot
加入新手交流群:每天早盘分析、币种行情分析
添加助理微信,一对一专业指导:chengqing930520
上一篇:
一文读懂隐私盘算、平安多方盘算、可验证盘算
下一篇:
Totle 是什么?—— DeFi 科普系列
加入新手交流群:每天早盘分析、币种行情分析,添加助理微信
一对一专业指导:chengqing930520

最新资讯
提供比特币数字货币以太坊eth,莱特币ltc,EOS今日价格、走势、行情、资讯、OKEX、币安、火币网、中币、比特儿、比特币交易平台网站。
2021 数字货币 网站地图