区块链应用架构思考

所需积分/C币:50 2018-03-31 13:45:24 1.28MB PDF

区块链应用架构思考 区块链应用架构思考 区块链应用架构思考 区块链应用架构思考 区块链应用架构思考 区块链应用架构思考
传统应用架构 机房 数据库 缓存队列等 业务逻辑(crud) 权限/合法性/存储/查询逻辑 区块链应用架构 节点 节点 出块节点 广播 广播 日志缓冲 日志缓冲 日志缓冲 区块安全以及业务逻辑校 区块安全以及业务逻辑校 验(智能合约) 区块安全以及业务逻辑校 同步 验(智能合约) 验(智能合约) 写 同步 写 写 区块账本 区块账本 区块账本 回放 回放 回放 状态数据库 状态数据库 状态数据库 查询逻辑以及只读智能合约 查询逻辑以及只读智能合约 查询逻辑以及只读智能合约 写 读 写 读 架构难题 天然跨机房,每个节点相当于互联网应用的一个机房,存全量数据 单点容量性能瓶颈 网络延迟以及带宽瓶颈 安全以及业务逻辑下沉到数据库层 如何允许用户存储更复杂的数据结构(关系,索引,计数等 如何允许用户表达更丰富的查询 重复校验带来的性能问题 读写分离带来的一致性问题 DApp公链案例 EOS(从 Steem应用链到通用DApp的演进) Cosmos sDK(一链一应用开发框架,hub集成) Hyperledger(联盟链应用开发框架) EOS 4. Message Ref Field Ty pe Description [ new type name:account name de String Name of contract type name type String Name of action structs: [t authorization name:transfer Authorizing account and permission Nested Document base: i fields u from": account name" data Nested document A nested document, any format, specific to u to": account_ name message In use amoun t int64 hex data String Hexadecimal representation of data name:account base: fields account: name i ba lance: uint64 block id: hasT transactions: [1d,.I FK producer- acco int: name FK on ic actions [ action name:transfer Transaction type :transfer tzn⊥d:hash block id: hasn name: strin s≌pe:[name,,1 a-sxpe,【ae..PK i": t tab type:account index type :164 key_names":[account] message-id: int txn.id: hash key_type ["name"] Cosm。s代码阅读 Hyperledger的架构基本就是我前一次说的 EventSource/CQRS榘构。账本就是 Eventsource,状态数据庳使用 couchdb或 Cosm。s认为当前区块链的容量瓶颈的解决 者 levell,然后给客户端提供kv形式的更 方案中, sharding是一个长远的方法,距离 新和查询 成熟落地还比较远,比较可行的方案是 alteon的方案,就是勾个应用都搞个自己的 这样简化了业务实体到数据库记录的映射的 链,和我前面说的一链一应用的思路一致。 复杂度,但缺点不好提供复杂的查询或者关 系索引。所以它提供了一种 chaincode的扩 并且我个人认为,即便是实现 sharding 晨方式,相当于它的『智能合约』,用于实 了,所有应用的数据都塞同一个链中,就如 现业务逻辑校验以及复杂的查询。 同提供一个公用的数据库给所有应用使用, 需要解决的问题也很多。 chaincode运行在独立的 docker容器中 提供rpc接口,通过区块链调用,所以理论 所以 Cosmos的方案是提供一个链与链之间 可以用任何语言实现。如果把区块链看成 的hub,突实现链之间的互通。有了这种互 数据厍, chaincode(包括其他智能合约) 递能力后,就可以实现去中心化的交易所, 相当于数据库的存储过程,所以妄图通过智 帮助其他链扩容,不同应用链之间的集成。 能台约实现整个应用的同学可以再思考下。 为了达成这个日标,他们团队先开源了 Hyperledger因为定位是一个框架,所以大 Tendermint,一个用go语言实现的区块链 多数主要组件都是插件式的,比如共识,排 BFT(PoS)共识协议框架,内置P2P网 序服务,校验服务等 络,区块账本同步,状态数据库。状态数据 库封装了一个通用的接口,底层提供 最后 Hyperledger的这篇 paper中对各种 leveldb,mem,fs等实现。 共识算法的分析比较挺详细,值得一看。附 图中的 Finality可以理解成延迟, Scalability 然后在 Tendermint基础上,又开源了 指节点规模。为了追求速度,肯定要牺牲节 Cosm。s-sdk,帮助用户更方便的实现区块 点规模,而牺牲了节点规模后,为了安全 链应用。 性、防女巫攻击,就需要引入人工许可机 制,本质上 Hyperledger的联盟链共识机制 Cosmos的思路是,如果大家都基于 和EOS这种DPoS是一样的,关键的区别 Tendermint和 Cosmos-sdk开发区块链应 就是许可的方式,联盟链是成员许可,而 用,然后自然很容易和 Cosmos hub公链集 DPos是通过用户社区投票 成。 shttps://wrww.hyperledger.org/wp content/uploads/201 Cosm。s没有cO,所以它的Atom币只能 等主网上线后才能交易,当前只接收捐款。 #源码阅读##笔记## hyperedge# Cosmos的白皮书中,对各种共识方案以及 IABLE 1. COMPARSON OF PERMIS5IONED OONSENSU5 APPROACHES AND STANDARD Howe 扩容方案的比较分析值得一读。 Work ' Bitcciab ●●●● GooD c cosmos/WHITEPAPER. md at master Scalability ●自自 cosmos/cosmos. G 发展趋势 ·单节点集群化(机房),并行验证,分布式存储(增加矿工的运维复杂 度) 网络加速激励 ·分片并不能完全解决性能和容量问题(依然需要全节点,降低第三方接 入成本) ·应用数据结构标准化,数据对象到存储结构映射标准化(ORM),状态数 据库提供更丰富的查询能力(自定义 query逻辑?)

...展开详情
试读 9P 区块链应用架构思考
img
cc20101001

关注 私信 TA的资源

上传资源赚积分,得勋章
    最新推荐
    区块链应用架构思考 50积分/C币 立即下载
    1/9
    区块链应用架构思考第1页
    区块链应用架构思考第2页
    区块链应用架构思考第3页

    试读已结束,剩余6页未读...

    50积分/C币 立即下载 >