Blockchain on AWS
What is blockchain
区块链是去中心化的分布式记账本,为系统或用户提供了Secure(安全性)Immutable(连续性)Reliable(可靠性)Decentralized(去中心化)等主要特性,它的出现将为很多行业带去革命。
Common usages of blockchain
目前的主要应用方面主要是:
- 数字货币/支付
- Land registration
- 选举投票
- 身份管理
- 跨越多组织的产品溯源
- 医疗行业(医疗记录查询)
- 代理权投票
- 公司注册
- 税收
- 权益管理
Comparing blockchain
通过这个图也可以比较形象的看出来,Ethereum用的Ethash(PoW的改进算法)是先获取记账权,再进行交易写入的过程。而HyperLedger为代表的PBFT类型的共识算法是先进行交易写入,然后通过PBFT算法验证交易的正确性。这两种共识算法,前者是先写入后共识,后者是先共识后写入。
Selecting a blockchain platform
至于区块链平台的选择,可以分为如下方面
- TPS(数据吞吐量)
- 可拓展性(支持节点的数目)
- 可终止
- 匿名性的需要
- DoS攻击,51%问题和Sybil攻击问题
- 共识算法的Liveness和Safety
- 分叉
- 去中心化问题
下表从共识算法角度分析平台选择的几点要素
Blockchain on AWS
AWS Blockchain Templates(AWS区块链模板)
AWS的区块链模型可以从下图理解
(P.S.图片不是很清晰)
整个过程可以概括为:ECR and ECS-Network&Tools-EC2
- ECR(AmazonElasticContainerRegistry)是完全托管的Docker容器注册表,可使开发人员轻松存储、管理和部署Docker镜像。
- ECS是一种基础云计算服务,是云服务器创建的,可以看成云服务器的小型实例化,方便增强其可拓展性。
- EC2是AWS提供的云计算环境的基础平台。
Example
Ethereum Vision
AWS以太坊区块链模块,以太坊是提供去中心化应用的区块链开源平台。AWS通过VPC(VirtualPrivateCloud)提供了在公有云(PublicCloud)上的独立空间(subnet),独立空间(subnet)分为了Private subnet和Public subnet。Public subnet相当于用户,Private subnet相当于系统部分,采用ECS实现,用于维护State和Geth的运行。
HyperLedger Vision
AWS超级记账本区块链模块。超级记账本是Linux基金会提供的去中心化的区块链开源应用平台。是一种基于联盟链的平台,提供了容器(Container)的概念,同一容器内组成一个EC2 instance对象,维护一个账本,其内部节点组成了一个联盟链。
Conclusion
在以太坊中,交易的执行者是通过挖矿算法预先选出,所以TX execution是明确的,而对于超级记账本而言,这个过程是通过PBFT算法验证TX内容的正确性,所以在这个过程中的TX execution是不明确的。对于Ordering&Block creation过程而言,由于以太坊共识算法的延迟性(Latency,延迟6个块,确认1个块)所以让其不确定。而超级记账本中的PBFT并不会延迟,所以其是确定的。
Application(HyperLedger)
- Diamond tracking
- Health Care
- Food Supply Chain