登录注册
杭州黑客松WORKSHOP大放送
南有乔木 2019-10-09 23:49:33 来源于:区块链论坛
197 0

9 月 21 日 - 22 日,为期两天的 PolkaWorld Hackathon(波卡世界黑客马拉松)在杭州钱江新城的 B-LABS 圆满举办。21 号下午,Parity 和 Web3 基金会带来了三个干货满满的 Workshop。其中之一是Parity 工程师 Wei Tang演讲的 “如何在 Substrate 上建立 PoW 共识” Workshop。以下为超节点(SSSnodes)对其演讲稿的独家中文全译。感谢PolkaWorld提供的图片资料。

Substrate, Proof of Work and Consensus Engines

原作者:Wei Tang Parity


Substrate

Substrate 是建立区块链网络的基础设施之一,被设计用于波卡(Polkadot)网络的建设。

 

一个区块链项目需要的主要条件:

l 数据库后端(Database backend),状态后端(state backend),runtime执行器

l 交易池,区块提议者(block proposer)

l RPC, CLI,密匙圈(keyring)

l 联网(Networking)

 

可用于构建区块链的可组合库:

l 共识协议

l 许多runtime模型!

 

使得建立区块链网络更简便,最终能够支持所有区块链建于其上!


工作证明(Proof of Work)


一个区块链网络有许多初级的目标:

l 让参与者为了什么达成共识

l 使任何人都可以审核如何达成共识,并说服自己达成共识

 

区块链(链上的区块)是完成以下目标的方法之一:

l 定义一个状态,以及如何从一个状态转换到另一个状态

l 将状态交易集中到区块中。一个系列的区块组合成一条链

l 定义一种方法,找出每个人都可以同意的规范链

 

共识

l 验证人

l 硬分叉

l 确定化(Finalization)


工作证明(Proof of Work)


l 为给出的问题寻找解决方案(被定义为pre_hash, nonce,只能以“蛮力”解决)

l 哈希函数(Hashcash PoW)。验证的花费与一次证明尝试相同

l 图(Graph),素数(prime numbers)


Substrate上的工作证明


Substrate共识引擎

l Aura, BABE

l Grandpa (Finality)

l Casper

l RHD (拜占庭共识BFT consensus)

l PoW工作证明

 

通用的PoW:

共识和Runtime

l Runtime:执行状态

l 共识:选择区块链

l 观察:

n 通过允许共识使用来自runtime的数据,我们能够得到灵活性和在线升级

n 换句话说,允许共识引擎使用状态数据的权限

l 为了进行工作证明,我们可以通过将定义推迟到运行时来实现灵活的难度调整算法

l 然而,在当前的基板设计中将密封验证推迟到运行时是不安全的


编写Substrate的一个引擎


区块验证:

l 定义导入队列,或将基本队列与验证程序一起使用

区块提议:

l 任何需要导入块并连续导入块的函数

l 你通常希望它未来得以实现(want to make it a Future)

(0个赞) 点赞
(0个收藏)收藏
用户评论
登录账号发表你的看法,还没有账号?立即免费注册