小浣熊下载站:值得大家信赖的下载站!

所在位置:首页 > 新闻资讯 > 五年磨一链,区块链公司CTO的告白:原来开发一条公链这么难

五年磨一链,区块链公司CTO的告白:原来开发一条公链这么难

发布时间:2024-03-16 03:34:05来源:小浣熊下载站作者:


从比特币的探索到自主研发,这一路走来,我见识了众多未曾设想的科技风景,其中最令我自豪且意义非凡的成就便是负责开发了区块链开发框架 chain33,并已在 Github 上开源,戳这里查看:https://github.com/33cn/chain33。各位程序员小伙伴,欢迎前来点star、fork,一起共建共享!

五年磨一链,区块链公司CTO的告白:原来开发一条公链这么难

一、研发背景与初衷


1. 自2013年起涉足比特币研究,随后转战以太坊源码,再到对 tendermint 和 fabric 的深入探究。到了2016年,我们决定另辟蹊径,自研一套区块链系统。原因有二:一是市面上现有的软件在设计时并未充分考虑到深度定制需求,例如想要调整 mempool 排队机制就必须触及内核代码,随着版本升级,合并代码带来的兼容性问题频现;二是我们在区块理解和系统架构上有着独特的见解,拥有自主知识产权至关重要,目前该系统已申请近200项专利。

2. 我们立志打造一个能够进行内核二次开发的区块链系统,而非仅仅作为Dapp开发平台。实践证明,开发这样一套系统远比想象中复杂,它不仅需要构建严谨的世界观和洞察事物本质的能力,比如如何处理交易间的关联性和合约间的关系。点击此处深入了解区块链世界观案例——“交易组”。

二、三个发展阶段


**第一阶段**

初期团队仅有5人,为确保项目能快速落地,我们先设定实现一个基础公链系统的目标,暂不考虑复用性和二次开发,追求功能快速实现。历时三个月完成了初步开发,然而测试阶段同样耗时三个月,bug丛生,尤其P2P模块难以测试。庆幸的是,我们正确地选择了基于消息传递的架构设计,各个模块通过消息队列通信,有效解耦并利于分布式部署和性能优化。不过,由于急于求成,在软件质量把控上稍显不足,导致后期调试时间较长,bug不易及时发现。

**第二阶段**

随着市场行情向好和资金充裕,团队扩展至约50人,分布于杭州、上海、南京三地,皆是资深后端开发者。这个阶段,我们进行了devops改造,采用 gitlab + jira + jenkins 的工具链提升管理效率。同时将系统模块化,并划分出公链及联盟链两个开发小组。此阶段的重大突破在于实现了“交易组”和“平行链”的概念。主链简化通用数据存证,用户通过自定义平行链处理具体业务逻辑,如此一来,主链可轻易实现分片,平行链则便于管理和升级。

**第三阶段**

尽管开发模式未变,但我们意识到关键在于架构层面保证每个开发者能独立工作,尽量减少相互干扰。协作虽不可避免会降低效率,但可通过架构设计使其影响最小化。得益于一体化设计的第一阶段成果,系统模块已经相对独立,而在这一阶段,我们将其独立性进一步细化,力求满足用户个性化需求,如添加共识模式、签名方式或mempool排队模式等,这些都能遵循开闭原则,通过插件化形式轻松实现,无需改动核心代码。如下图所示:

内核精简小巧,几乎每个组件都支持插件化替换。我们还提供了一些便捷工具帮助大家快速开发插件,更棒的是,用户可以像分享URL一样分享自己开发的插件,从而避免重复造轮子。随着更多开发者在 chain33 内核基础上开发出新功能,chain33 将愈发强大,有望让更多人放弃自行开发区块链系统的念头。

当前我们已开源大部分插件,访问地址:https://github.com/33cn/plugin,以下是主要插件列表:

共识部分


  • pbft (联盟链, beta)


  • tendermint (联盟链)


  • raft(私有链)


  • ticket(公链)


  • solo (测试链)


    加密部分


  • sep256k1 (比特币、以太坊)


  • ed25519 (tendermint、sc)


  • sm2 (国密支持)


    存储部分


  • mavl (tendermint 提供的后端数据存储方式)


  • mpt (以太坊提供的数据存储方式)


  • kvmvcc(当前最高性能的区块链后端存储方案)


    执行器部分


  • evm (以太坊虚拟机支持)


  • wasm (尚未开源)


  • cert (联盟链权限管理)


  • hashlock (哈希锁定,用于跨链 BTC、ETH 等)


  • paracross (平行链,值得注意的是,平行链只是我们的一款插件,足见内核之小)


  • privacy (类似门罗币的隐私保护实现,展示了我们系统强大可扩展性,即使门罗币基于UTXO模型,也能在此系统中兼容账户模型)


  • trade (内置币币交易所,支持所有链上资产交易)


  • 游戏(牛牛、时时彩、石头剪刀布等)


    值得一提的是,我们为了公平公正地运行博彩类游戏,还在共识级别引入了随机数生成的概念,这是当前许多区块链系统无法企及的。最近EOS遭受的攻击恰恰暴露了这一点,即共识节点可能随意操控随机数。

    无论你是否具备区块链开发经验,均可加入我们的开源社区,这里有经验丰富的大咖为你答疑解惑,一起在 chain33 的世界里乘风破浪! TRADE币

    • 热门资讯
    • 最新资讯
    • 手游排行榜
    • 手游新品榜