Go在区块链的发展和演进

Golang 以其在高并发场景下的天然优势等特性,已经成为今天开发分布式系统的首选语言,在云计算领域占据了无法替代的位置。如今,越来越多的项目组织都选择了 Golang 来编写核心处理模块。在当下最热门的技术领域——区块链上,我们所熟知的包括以太坊、SiaCoin 、IPFS 等都在使用 Go 语言开发,甚至可以大胆预测:继云计算之后,未来整个区块链行业也将会是 Go 语言的天下。



姜家志-现在在比特大陆负责比特币客户端开发项目,10 年互联开发经验,13 年开始接触比特币,开发了比太钱包,这是中国人开发的唯一一个被 bitcoin.org 推荐的钱包。13年开始接触 Go 语言,刚一接触就被 Go 的简洁和高效吸引。


以下是对于演讲的内容实录。


大家好,我是比特大陆哥白尼项目负责人姜家志。我 2013 年开始接触比特币,开发了比太钱包(是国内开发的唯一上 bitcoin.org 的钱包)。现在就职于比特大陆,从事区块链底层协议开发相关的工作。比特大陆是一家专注于高速、低功耗定制芯片设计研发的科技公司。可能圈外的人对比特大陆了解比较少,更多是知道我们的蚂蚁矿机。实际上我们除了矿机业务还有 AI 业务,而且已经产出了人工智能的芯片。我们是一家以技术为驱动的科技公司,拥有着硬件和软件方面的各类人才。

今天主要跟大家分享一下 Go 和区块链的发展和演进。


首先,我们一起看一下区块链里面招聘的 TOP15 的技能要求,如图1。

640?wx_fmt=png&wxfrom=5&wx_lazy=1图1

我们可以看到,在区块链行业里面 Go 的招聘排位是第一的,占比 10.20%,超过了 Java 和 C++。目前区块链领域对于 Go 语言的招聘需求不断提高,以我们公司为例,很多项目除了前期使用了Java 和 C++ 之外,后期的项目都是以 Go 语言为主。

640?wx_fmt=png图2

 图2 是来自 GitHub 的统计,排行第一是 JavaScript。这是有原因的,因为一般网站代码中 Java Script 占比很高,比如说我搭了一个网站,把网站的代码放到了 Github上,统计之后,这个网站就算作以 JavaScript 为主了。此外,写测试脚本一般大多会使用 Python ,也导致了python 的使用增加。而在区块链领域,真正的首选语言还是 Go 语言,比如以太坊都是基于 Go 语言开发的,很多新的项目也都选择了 Go 语言进行开发。接下来我们进入正题。


  1. 区块链


区块链的定义是一个很复杂的事情,因为不同的人对于区块链的理解不同,而且区块链也在不断的发展中,以下列出一些大家对区块链了解的基本定义:

1.去中心化 。其实现在很多的区块链的项目,因为要求高 TPS,已经在牺牲中心化的特性实现高 TPS 了,比如说典型 EOS,它其实更相当于弱中心化。

2.数字化帐本。这些很清晰,所以的区块链都是在互联网上进行的。

3.不可篡改。在以太坊中通过交易的方式可以改变合约的状态的,但是这种改变在合约上也是已知的。

4.确定性的可复制状态机。这个是用来解决整个系统的容错性问题。


2.区块链的特点


1.去中心化(弱中心化)

 弱中心化是为了解决信任问题,不会出现一个单一组织或者个人能够控制整个协议。

2.弱信任,对等的写入权限的数据库

 在区块链的每个矿工,或者是超级节点以及其他的 POS 见证人等,都有对等的写入权限,这个根据各个协议的不同,虽然说有对等的写入权限,但是什么时候能写入就是共识要解决的问题。

3.共识信任的机制来自于规则,非第三方

 这些代码中定义的规则,不是来自于任何的第三方,这里的第三方比较广泛,比如说任何公司、个人甚至一个政府。

4.不可篡改性

 在智能合约中有可能改一些智能合约的状态,其他的数据和交易都是不可篡改的。

5.加密安全性,强规则

 区块链世界中都是一些非常强的规则,比如说我们常常听到交易,确认。强一致性的规则是各个节点都必须要遵守,如果发生了和规则不一致的交易,或者是区块,会被其他的节点拒绝。

6.可编程

<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值