由火币集团和 Nervos Foundation 联合开发
火币公链是 火币集团 和 Nervos Foundation 联合开发的高性能公链。它基于 Muta、CKB-VM、Overlord、nervos-p2p 等开源组件深度定制,并面向金融应用的场景进行了扩展与优化。
火币公链目前的主要技术特征有:共识算法采用自适应流水线算法提高交易吞吐量;采用聚合签名技术降低共识算法延迟;使用基于账户的 CKB-VM 实现编译器和硬件友好的高性能智能合约虚拟机;内置一等资产类型,对用户资产采用内置服务管理,大幅提高安全性、通用性并降低复杂度;支持原生跨链协议,火币公链、Nervos CKB 和基于火币公链或 Muta 技术开发的侧链可以直接实现跨链;支持高灵活性的虚拟机合约以及高性能的原生合约,适应不同业务场景。
在面向金融应用优化方面,火币公链支持或在未来计划支持交易确定性回执、单账号交易并发处理、任意资产支付交易手续费、第三方代付手续费、金融行业 DSL 执行环境等区别于大多数公链的特性。此外,火币公链还将提供可插拔的监管组件,根据应用场景可选择地对合约部署、运行,资产持有与转移,KYC 与 AML 等进行监管对接。
- 如果你想基于火币公链技术搭建自己的区块链,可以参考快速入门。
- 如果你想了解火币公链的整体架构,和一些模块的设计,可以参考架构设计、模块设计、service 介绍。
- 如果你想基于火币公链开发去中心化应用,可以参考从 0 开发 riscv 合约教程。
提示:火币公链目前正处在早期开发中,技术细节、设计文档和实现代码会频繁变更。
火币公链采用 Overlord 共识算法,其设计目标是成为能够支持上百个共识节点,满足数千笔每秒的交易处理能力,且交易延迟不超过数秒的 BFT 共识算法。Overlord 的核心思想是解耦交易定序与状态共识,从而实现共识和执行完全并行,极大提高整条链的交易吞吐量。
火币公链默认的虚拟机是采用了 RISC-V 指令集的 CKB-VM。RISC-V 是一套在 BSD 开源协议下分发的针对硬件的精简指令集。相对于区块链中常用的 EVM 和 WASM,CKB-VM 的性能更高,指令集稳定无需频繁硬分叉升级,以及有众多开源生态支持等优势。
得益于 CKB-VM 的灵活性和可扩展性,在不侵入指令集修改的前提下,我们在 CKB-VM 之上实现了一套 Account SDK 以实现火币公链智能合约中的 Account 模型,不仅如此,我们还提供了合约编程语言 Minits,Minits 是一个专为区块链智能合约开发设计的 Typescript 的子集,它使用 LLVM 最终把代码编译成 RISC-V binary 在 CKB-VM 中运行。
采用 FCA 实例化的 UDT 具备原生跨链功能,火币公链与其侧链,以及火币公链与 Nervos CKB 公链之间都可以采用这种跨链协议实现去中心化跨链。
我们采用去中心化 relay 的方式传递跨链证明,relayer 可以是侧链 validator,也可以是其他第三方用户。侧链之间可以不依赖火币公链或 Nervos CKB 实现直接的跨链功能。
Service 是 Muta 框架中用于扩展的抽象层,用户可以基于 Service 定义区块治理、添加 VM、或实现一个 dapp。当前火币公链测试链基于 muta 框架内置了三个 build in service: asset service,risc-v service,node management service。未来火币公链的侧链可能广泛采用 service 来实现高性能的特定业务。
用户在当前的测试网上可以发行自己的代币,可以通过合约开发去中心化的应用。目前支持 C 语言编写合约,合约将被编译成 RISC-V 代码,动态部署到链上。后续 Huobi Chain 将会支持更多的合约编程语言,进一步完善开发者的体验。
- 🍴Fork 这个项目并clone到本地
- 🔀新建一个分支:
git checkout -b new-branch
- 🔧增加新特性或者解决一些bug
- 📝提交你的修改:
git commit -am 'Add some feature'
- 🚀推送你的分支:
git push origin new-branch
- 🎉提交Pull Request
或者提交一个issue - 欢迎任何有帮助性的建议:stuck_out_tongue_winking_eye: