区块链技术:功能、特性与架构设计全解析
1. 区块链作为计算基础设施
软件组件是软件架构的基本构建块,而区块链可作为提供计算能力的软件组件。智能合约能让我们在区块链上执行小程序,例如以太坊就将智能合约视为一等元素,其智能合约可表达触发器、条件和业务逻辑,实现复杂的可编程行为。
智能合约的应用场景广泛,比如托管服务,它能持有资金,直到智能合约中定义的义务履行完毕。此外,智能合约还可用于物联网应用中的机器对机器通信。
在基于区块链的系统架构设计中,一个关键决策是确定哪些数据和计算部分应放在链上,哪些应放在链下。由于区块链的计算能力、数据存储空间和读取访问控制有限,通常的做法是将哈希数据、元数据和一些小尺寸的公共数据存储在链上,而将大尺寸或私有数据存储在链下。一些平台如 Factom 就在区块链之上提供数据层,只在其区块链中存储私有数据的哈希值和少量公共数据。分布式数据存储如 IPFS 或使用分布式哈希表(DHTs)的系统,也常与区块链结合构建去中心化应用。
由于区块链计算具有封闭世界假设,智能合约通常只能检查存储在区块链账本上的状态。为了与外部世界交互,需要调用预言机将外部状态引入区块链。预言机有多种类型,有些像区块链的普通用户,只是将世界的事实作为普通交易记录在账本上;而另一些是区块链平台内的组件或节点,可调用特权智能合约。预言机通常会成为外部世界相关数据的可信方。
2. 区块链的非功能属性
2.1 非功能属性和需求
在指定系统时,软件工程师通常会区分功能需求和非功能需求。非功能需求(NFRs)是对非功能属性(NFPs)的需求,这些属性也被称为“质量”或“能力”,包括成本、安全性(保密性、完整性
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



