不变秃,也要变强!

0%

Note:该篇文章翻译自 Byzantine Finality Gadgets,有歧义处请留言。

1 简介

我们思考了区块链协议的终结问题:什么时候一个区块永远不会被回滚。有许多这样的协议,如最初的区块链——比特币,都具有最终共识的性质——链上一个不断增长的共同前缀将被所有参与者永远认同。但它们通常只给出一个特定块的概率终结性——在给定关于网络和参与者的一些假设下,如果我们看到一个给定块之上有几个块,我们可以估计出它是最终块的概率。

阅读全文 »

PhantomData是一个零大小类型的标记结构体。

作用:

  1. 并不使用的类型;
  2. 型变;
  3. 标记拥有关系;
  4. 自动trait实现(send/sync);
阅读全文 »

开始

本地启动substrate节点

1
2
./target/release/substratekitties purge-chain --dev
./target/release/substratekitties --dev
阅读全文 »

编译过程

分词(词条流)→解析(抽象语法树)→简化(高级中间语言)→简化(中级中间语言)→转译(LLVM中间语言)→优化(机器码)

阅读全文 »

行为上对类型的约束

trait是Rust对Ad-hoc(点对点/特别的/临时的)多态的支持。

接口抽象

  • 接口中可以定义方法,并支持默认实现;
  • 接口中不能实现另一个接口,但是接口之间可以继承;
  • 同一个接口可以同时被多个类型实现,但不能被同一个类型实现多次;

为不同的类型实现trait,属于一种函数重载,也是Ad-hoc多态。

阅读全文 »