内容简介:本文是波卡百科(Polkadot Wiki)的【了解 Substrate - Extrinsic】部分。PolkaWorld 正在逐步翻译 Polkadot Wiki,并连载在 PolkaWorld 公众号上。外部信息(extrinsic)是一条来自链外并包含在一个区块中的信息。外部信息可分为三类:inherents、已签名交易和未签名交易。
本文是波卡百科(Polkadot Wiki)的【了解 Substrate - Extrinsic】部分。PolkaWorld 正在逐步翻译 Polkadot Wiki,并连载在 PolkaWorld 公众号上。
外部信息(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]
阅读更多
参考文档[7]
Runtime Execution[8]
交易费用[9]
交易池[10]参考资料
[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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 热烈祝贺闪捷信息正式成为中国信息协会量子信息分会会员单位
- 安盟信息法院信息系统勒索病毒防护方案
- SQL Server 查找统计信息的相关采样信息
- 关键信息基础设施重要信息资产漏洞治理的实践和思考
- 干货 | 聚焦「信息压缩」,IBM 携手 MIT 再解读「信息瓶颈」理论
- 医疗行业信息安全敲响警钟 黑客攻击或致大量公民个人信息泄露
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
游戏数据分析的艺术
于洋、余敏雄、吴娜、师胜柱 / 机械工业出版社 / 2015-7 / 79.00
《游戏数据分析的艺术》是中国游戏产业的开创性著作,具有里程碑意义,它首次系统讲解了如何对游戏行业的数据进行分析,在行业里竖起了一根标杆。作者是来自TalkingData等国内顶尖的数据分析机构和西山居这样的知名游戏公司的资深数据分析专家, 对游戏数据从不同的业务角度进行了诠释。本书详细剖析了游戏数据分析相关的指标、方法论、内容挖掘、数据挖掘、软件使用、游戏设计、运营策划、渠道推广、收入解读、用户分......一起来看看 《游戏数据分析的艺术》 这本书的介绍吧!
HEX CMYK 转换工具
HEX CMYK 互转工具
HSV CMYK 转换工具
HSV CMYK互换工具