发起

为什么区块链开发使用c++比较多?

0 0
  • bater

    传统互联网程序员一枚 区块链与DAG业余爱好者

    赞同来自: 大猎手 peterchen145
    金融行业相关大都要追求性能和稳定性,而C++和JAVA都能很好满足这一点,尤其对于基础性的公链项目,现在也有很多其它语言开发的项目,随着行业的成熟和普及,语言并不是制约项目发展的关键。
    2
  • robin

    ChainONE 社区发起人,SuperONE 团队成员,YOYOW 号: 380863526

    赞同来自: peterchen145 哲水思源
    谢邀。



    C++ 适合领域



    C++ 并非万能丹,C++ 适合以下领域:



    * C++ 适合构造程序中需求较稳定的部分,需求变化较大的部分可使用脚本语言;

    * 程序须尽量发挥硬件的最高性能,且性能瓶颈在于 CPU 和内存;

    * 程序须频繁地与操作系统或硬件沟通;

    * 程序必须使用 C++ 框架 / 库,如大部分游戏引擎 (如 Unreal/Source) 及中间件 (如 Havok/FMOD),虽然有些 C++ 库提供其他语言的绑定,但通常原生的 API 性能最好、最新;

    * 项目中某个目标平台只提供 C++ 编译器的支持。



    按应用领域来说,C++ 适用于开发服务器软件、桌面应用、游戏、实时系统、高性能计算、嵌入式系统等。



    C++ 性能为什么高呢?



    相对运行于虚拟机语言 (如 C#/Java),C++ 直接以静态形式把源程序编译为目标平台的机器码。一般而言,C++ 程序在编译及链接时可进行的优化最丰富,启动时的速度最快,运行时的额外内存开销最少。而 C++ 相对动态语言 (如 Python/Lua) 也减少了运行时的动态类型检测。此外,C++ 的运行行为是确定的,且不会有额外行为 (例如 C#/Java 必然会初始化变量),也不会有如垃圾收集 (GC) 而造成的不确定性延迟,而且 C++ 的数据结构在内存中的布局也是确定的。另一方面,C++ 能直接映射机器码,之间没有另一层中间语言,因此可以做底层优化,例如使用内部 (intrinsic) 函数和嵌入汇编语言。



    区块链项目为什么选择 C++



    1、C++ 丰富的类库,对于对开发进度要求高的项目具有先天优势。

    2、C++ 性能高,在此不再赘述。就数据库而言,大部分的项目都是由 C 或者 C++ 编写。

    3、比特币项目主要是由 C++ 编写,后续的山寨项目基本上会 fork 比特币 repo,造成了底层项目 C++ 遍地开花的局势。

    4、未来可以看到更多的用 Go、Java 等语言开发的项目,还有一些智能合约等其他工具会选择如 Solidity 等新晋语言。

     

    以上。

     

    (此回答已获得80yoyow奖励)
    2
  • sgs

    向洋 莫民 sgs@steemit yoyow=507852155

    赞同来自: 大猎手
    速度和库。

    c 适合linux 内核

    cpp 速度略慢,但lib多,抽象度更高,适合native app。

    比如office photoshop 大多game engine都是cpp。



    btc 也是cpp写内核,以后区块链大都cpp,

    比如bts。

    2015后区块链项目更多,

    其他golang rust java js 也有 用来写区块链的。

     

    (此回答已获得20yoyow奖励)
    1
  • baidang201

    区块链技术探索者,精通C++,研究区块链技术. 区块链研习社成员,007er,简书 剑有偏锋 yoyow=409599711

    赞同来自: peterchen145
    1 历史原因

    比特币是第一个区块链应用,就是c++做的,很多比特币的分叉或山寨币,必然用c++



    2 性能原因

    c++性能上说,也是比较优秀的



    3 然后再分层次说

    (1) 基础区块链的开发,这个毫无疑问要求性能。c++ golang  java是最好选择

    (2) 智能合约开发,要求开发方便友好,这个可选的语言多点。js  lua c# golang 都有
    1

要回复问题请先登录注册

Copyright © 2018