Skip to content

zhouyun-zoe/hc-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 

Repository files navigation

让金融更高效,让财富更自由

由火币集团和 Nervos Foundation 联合开发

简介

火币公链是 火币集团Nervos Foundation 联合开发的高性能公链。它基于 Muta、CKB-VM、Overlord、nervos-p2p 等开源组件深度定制,并面向金融应用的场景进行了扩展与优化。

火币公链目前的主要技术特征有:共识算法采用自适应流水线算法提高交易吞吐量;采用聚合签名技术降低共识算法延迟;使用基于账户的 CKB-VM 实现编译器和硬件友好的高性能智能合约虚拟机;内置一等资产类型,对用户资产采用内置服务管理,大幅提高安全性、通用性并降低复杂度;支持原生跨链协议,火币公链、Nervos CKB 和基于火币公链或 Muta 技术开发的侧链可以直接实现跨链;支持高灵活性的虚拟机合约以及高性能的原生合约,适应不同业务场景。

在面向金融应用优化方面,火币公链支持或在未来计划支持交易确定性回执、单账号交易并发处理、任意资产支付交易手续费、第三方代付手续费、金融行业 DSL 执行环境等区别于大多数公链的特性。此外,火币公链还将提供可插拔的监管组件,根据应用场景可选择地对合约部署、运行,资产持有与转移,KYC 与 AML 等进行监管对接。

开始

核心功能

提示:火币公链目前正处在早期开发中,技术细节、设计文档和实现代码会频繁变更。

共识和执行完全并行

火币公链采用 Overlord 共识算法,其设计目标是成为能够支持上百个共识节点,满足数千笔每秒的交易处理能力,且交易延迟不超过数秒的 BFT 共识算法。Overlord 的核心思想是解耦交易定序与状态共识,从而实现共识和执行完全并行,极大提高整条链的交易吞吐量。

基于 RISC-V 的虚拟机

火币公链默认的虚拟机是采用了 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

Service 是 Muta 框架中用于扩展的抽象层,用户可以基于 Service 定义区块治理、添加 VM、或实现一个 dapp。当前火币公链测试链基于 muta 框架内置了三个 build in service: asset service,risc-v service,node management service。未来火币公链的侧链可能广泛采用 service 来实现高性能的特定业务。

应用开发

用户在当前的测试网上可以发行自己的代币,可以通过合约开发去中心化的应用。目前支持 C 语言编写合约,合约将被编译成 RISC-V 代码,动态部署到链上。后续 Huobi Chain 将会支持更多的合约编程语言,进一步完善开发者的体验。

贡献 PRs

  • 🍴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:

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •