序2
我记得2018年夏天开始在Tendermint团队工作时,自己既兴奋又有些不知所措。我是一位开源社区的长期贡献者,在我的软件行业生涯中,我面临过各种各样的挑战,并且在许多不同的行业和部门中工作过,包括广告、大数据分析、嵌入式软件和金融市场的预测等。在加入Tendermint团队之前,我已经在许多初创企业和几家全球企业中任职。尽管如此,区块链对我来说仍然是一个全新的“世界”,这里满是新事物和颠覆性技术,以及听起来近乎疯狂的绝妙想法和野心勃勃的项目。其中最令人难以置信的,当然是区块链网络。
在Tendermint团队工作的第一天,团队向我解释了项目计划:构建包含多个模块的软件开发工具包,以便区块链应用开发者可以基于这些模块,轻松构建独立、自主的区块链应用。项目任务非常明确:我们必须让开发者以尽可能轻松的方式构建尽可能多的区块链应用。这些应用(也称为Zone)不仅可以从生态环境友好的Tendermint共识算法所提供的快速最终性(fast finality)中获益,还享有独立、自主的链上治理,并且可以通过IBC协议相互通信。Cosmos-SDK项目致力于完成这一任务。
在过去两年中,开发者构建了不计其数的Cosmos-SDK项目的模块和应用,并启动了众多 Cosmos应用区块链。Tendermint和Cosmos生态系统的成功超出了人们的预期。我们不再是唯一一个投入时间和资源研究并开发Cosmos技术堆栈模块和协议的团队。这允许我们将一些任务委托给技术纯熟、信誉卓著的合作伙伴,并在更多的方向上扩展我们的工程能力:在继续构建区块链应用开发所需技术基础的同时,我们也开始注重构建以自动化做市商(automated market maker)为代表的分布式金融(decentralized finance)协议,以及以Starport为代表的可以进一步改善开发体验并允许开发者在几分钟之内从零构建Cosmos区块链的开发者工具。
这本书将带你踏上了解构成Cosmos区块链应用的所有技术组件的旅程。这本书首先深入介绍Tendermint Core项目,包括项目的内部组件、密码学算法以及设计准则。最初的Tendermint团队遵循该设计准则开发了区块链应用接口(application blockchain interface,ABCI),这是一套介于任意有限状态机(finite state machine)和底层复制引擎(replication engine)之间的接口。接下来这本书详细介绍Cosmos-SDK项目中的每一个功能模块,以及这些功能模块之间如何和谐地构成PoS机制。基于该机制,最初的Tendermint团队构建了Cosmos Hub网络的客户端Gaia。
这本书作者接受了挑战,用一本书的篇幅为读者全面介绍关于Tendermint Core项目和Cosmos-SDK项目几乎所有需要了解的内容。作者撰写了一本全面深入的手册,如果你想要充分理解Cosmos生态系统基础技术的复杂性,这本书是一本真正的常备手册。我相信通过他们的努力,将会有许多读者精通使用Cosmos-SDK项目,开发出安全和高性能的区块链应用。
Alessio Treglia
Tendermint工程副总裁
2020年12月