Bitcoin.com开发人员正创建一个用Rust语言编写的BCH全节点
近日,Bitcoin.com开发人员Gabriel Cardona在推特表示,自己正创建一个用Rust语言编写的BCH全节点,目的是为了改变完整节点的范式,让BCH代码库更加安全、编程人员技术贡献更加简单,从而加速BCH创新。
Rust语言编写BCH全节点
现有的BCH全节点开发都是基于一个C++版本,这个版本虽然稳健且经过了时间的考验,但对于专攻其它语言的开发者来讲难度较大,需要了解和学习的时间较长,不利于一些新加入进来的BCH开发者。在此基础上,Gabriel Cardona希望开发出一个相对简单和安全的客户端来减少新进开发者的开发难度,标准性能与标准C++性能不相上下Rust语言也就成了一个不错的选择。
Rust编程语言相对于C++来说更加专注于安全,尤其是并发安全,是一种支持函数式和命令式以及泛型等编程范式的多范式语言。Gabriel Cardona之所以选择Rust编程语言,与该语言的受欢迎程度也有关系,据了解,Rust已经连续四年(2016,2017,2018,2019)在Stack Overflow开发者调查的“最受喜爱编程语言”评选项目中折取桂冠。
开发进度
在具体的开发方面,Gabriel Cardona表示,该项目目前是个人性质的开发,官方团队并没有直接参与其中,开发进度有限。他已经在自己的开源代码库中递交了部分代码,感兴趣的爱好者可以了解一下,https://github.com/cgcardona/earth。
Gabriel在推特中还表示,自己目前遇到的最大问题是Rust如何与Web交互,而他认为自己在Web工作中使用Typescript,在整个节点工作始终继续使用Rust。
新全节点对于BCH生态的影响
据浏览器coin.dance的数据统计,BCH目前公开的节点版本共有七个,分别是Bitcoin ABC、Bitcoin Unlimited、Bchd、Flowee Hub、Bitcoin XT、Bitprim和Bitcoin Verde。
这些客户端版本均基于原始的C++版本开发,用Rust编程语言编写的BCH全节点版本一旦上线,将对整个BCH生态造成有利的影响。
首先,放宽技术门槛,为BCH开发更多吸引人才。这是最为明显的一个优点,也是该项目诞生的主要原因。众所周知,比特币现金有着庞大数量的支持者群体,但开发人员一直是非常欠缺。造成这个问题的原因主要有两方面:第一点,区块链自身作为一种新兴技术,在究竟是不是风口还处于大众质疑的情况下,可想而知,真正了解其技术的开发员能有多少?第二点,BCH自身作为区块链技术的杰出产物,有着较高的技术门槛。Rust语言写就的客户端主要就是针对第二点而做出的解决方案。
其次,新语言客户端的加入,有利于提高整个网络的可能性。现有的BCH客户端都是基于C++版本,Rust语言版本的客户端为BCH又增添了一种可能性。在具体的开发过程中,一个不用语言的客户端也能在整个网络起到很好的测试和完善作用,有利于各个团队之间的竞争协作。
最后,基于Rust语言的客户端能提升BCH的去中心化程度。BCH有数个独立的开发团队在工作,这些分散的开发团队保证了BCH开发不受控制,虽然目前大部分节点部署在ABC和BU上,但各个开发组之间有着良好的沟通,ABC和BU做出的改动基本上都是经过了所有开发者的同意。Rust语言版本客户端的加入,无疑将明显提升BCH开发去中心化程度。
Bitcoin.com开发人员正创建一个用Rust语言编写的BCH全节点相关推荐
- java开发的图片管理系统,一个使用Java语言编写的Web本地照片管理系统
jAlbum 这是一个使用Java语言编写的本地照片管理系统.使用BS架构.服务端采用Servlet提供RESTful风格接口和动态页面供浏览器直接访问,集成照片Exif信息处理.视频流信息处理和人像 ...
- Bchd开发出可替代BCH全节点的公开API——gRPC
最近,BCH社区开发人员Bchd发布了一个用Go语言编写的gRPC API,它可以取代完整的BCH节点.根据开发人员的说法,这是一个高性能和可靠的服务器,这将使bchd成为比特币现金生态系统中最顶级的 ...
- python 速度 memmap_从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例
<从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例>要点: 本文介绍了从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例,希望对您有用.如果有疑问,可 ...
- 转 从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例
注: 转自 微信公众号"高可用架构":从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例 导读:Python 被很多互联网系统广泛使用,但在另外一方面,它也存在一 ...
- 为什么 Web 开发人员需要学习一个 JavaScript 框架?
原文链接 可能当我们结束本文时,一个新的 Javascript 框架已经在某处启动了.但这确实不在我们的控制范围内.因此,我们应该简单地继续我们所拥有的.至少,由于免责声明,我们可以确定我们不是在发明 ...
- golang游戏开发学习笔记-创建一个能自由探索的3D世界
此文写在golang游戏开发学习笔记-用golang画一个随时间变化颜色的正方形之后,感兴趣可以先去那篇文章了解一些基础知识,在这篇文章里,我们将创建一个非常简单(只有三个方块)但能自由探索的的3D世 ...
- Moblin v2开发环境设置——创建一个新应用程序
(翻译:徐诚 http://blog.csdn.net/shizhebsys 保留版权) 这里是开始Moblin开发重要起点.本页描述如何创建一个简单的应用程序,并且介绍少数有用的工具帮助你快速启动开 ...
- Android IoT开发实战 | 04 - 创建一个新的活动Activity(登录界面)
本系列IoT App开发笔记系b站视频教程学习笔记,视频地址: [7天Java0基础速成安卓开发]Day1 Android工程代码是怎么运行的 [7天Java0基础速成安卓开发]Day2 常用控件和界 ...
- iWatch 开发 2:创建一个简单的Apple watch应用
在上篇文章中,我系统的介绍了一下 iWatch 的功能,相信大家对iWatch开发 也有了一个系统的认识. 今天这篇文章来跟大家说下如何创建一个简单的 iWatch app. 使用 Xcode 创建 ...
最新文章
- “抽象类”的定义及其与“普通类”的区别
- Java获取当前时间前几个月、季度
- java数据类型_Java 变量、表达式和数据类型详解
- boost::fusion::transform_view用法的测试程序
- Linux下安装MongoDB3.2.5(自测)
- android系统账户管理(AccountManagerService+AccountAuthenticator)
- 修改对象的某个属性的值_什么是类,什么是对象
- mysql 动态sql 解析json数据_在SQL 中生成JSON数据
- 获得当前字符串的宽度
- mysql可视化一月多少钱_最便宜mysql可视化
- 吴恩达深度学习之一《神经网络和深度学习》学习笔记
- 网络编程之 哈希表原理讲解 来自老司机的源码
- hdu1263 简单模拟
- Openlayer:学习笔记之图标与提示信息
- lol全队消息怎么发_英雄联盟如何发全部消息,LOL怎样发送消息给全部
- Moore-Penrose广义逆矩阵
- [NLP]OpenNLP文档分类器的使用
- iOS 图形处理 Core Graphics Quartz2D 教程
- Android开发一个美食app
- AIX命令创建JFS2的LV及FS(非smitty交互模式)