2024-05-17
在现代区块链的发展过程中,人们逐渐形成了一种更有原则的思维方式来思考什么是运作良好的区块链,以及如何合理地解耦和扩展其核心组件。这种思维方式形成了单体与模块之争。
区块链模块化的核心理念
区块链模块化设计的核心理念是将区块链的功能划分为四个基本组件:
执行层:负责确定交易「之后」的状态。如果我向一个特定钱包发送代币,执行层将决定交易前后的相关余额。
结算层:确定提交的交易是否「合法」。例如,发送代币后,结算层会确认余额是否正确。
共识层:决定一组交易的最终状态。这一层负责确定交易的正确顺序以及处理这些交易后的最终状态。
数据可用性层:确保存在上述三个功能所需的先前状态和结束状态。数据可用性层的功能是向执行层提供状态,并根据共识的最终结果更新状态。
这种模块化的框架允许更专业的区块链设计。例如,高吞吐量的游戏区块链与旨在成为全球去中心化账本的区块链有着截然不同的需求。
数据库设计的启示
数据库的设计原则与区块链模块化设计有许多相似之处。数据库比区块链存在时间更长,其设计中没有完美的方案,一切都需要进行权衡。构建可扩展数据库的框架始终围绕「用例是什么?」展开,在做出设计决定之前,通常需要回答以下问题:
读写比例:例如,在Telegram或Slack这样的应用上,读写量级相似,而在Twitter上,读取量比写入量高几个数量级。
一致性与可用性:在分布式系统中,需要在一致性和可用性之间做出权衡。对于金融科技应用而言,一致性(准确数据)要重要得多,而其他应用可能更关注可用性。
数据的新鲜度:陈旧数据与新鲜数据的相对重要性与读写负载有何关系?数据库是否允许我们执行策略来处理并发写入和读取?
读取模式:需要灵活访问数据,还是预先定义数据?是否在不同的数据集中执行了很多联接?
除了技术考虑之外,还有一些关键的非技术因素需要了解:
工程师的技能:有多少工程师精通这项技术?有多少工程师愿意使用这项技术构建?
社区支持:如果我们想要分叉底层代码并进行调整,是否有办法获得积极的支持?
单体与模块之争的现实意义
在区块链设计中,单体结构和模块化结构各有优缺点。单体结构通常更简单,更易于初期实现,但在扩展性和灵活性上可能受到限制。模块化结构则提供了更大的灵活性和可扩展性,但实现和维护的复杂性更高。
这种设计思维框架不仅适用于区块链,也适用于其他分布式系统。通过明确不同组件的职责和功能,可以更有效地解决特定的应用需求,并应对未来的发展和变化。
区块链的发展正在朝着更专业化和模块化的方向前进。通过借鉴数据库设计的原则,区块链设计者可以更好地理解和实现高效、灵活的系统架构。无论是单体结构还是模块化结构,每种设计路径都有其独特的优势和挑战,关键在于根据具体的应用需求和场景做出明智的选择。
动态 2024-02-01
新闻 2024-02-06
动态 2024-01-16
动态 2024-01-17
新闻 2024-02-01
新闻 2024-01-16
动态 2024-02-01
新闻 2024-01-17
新闻 2024-02-20
动态 2024-01-17