GO语言凭什么是区块链的首选语言

Posted 一个月只能改一次欧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GO语言凭什么是区块链的首选语言相关的知识,希望对你有一定的参考价值。

GO语言凭什么是区块链的首选语言

区块链的火热也带动了GO语言开发者的突增,那凭什么GO语言会成为最主要的区块链构建语言之一。我认为这得益于GO语言的性能、抽象度、简单性和现代性。并且,当下最成功、最流行的go-ethereum和Fabric都是使用GO语言实现的,在这两个的带领下,为了减少开发时间和成本,GO语言也成为开发区块链的优选。

对加密函数的支持

GO语言之所以被称之为区块链编程第一语言,主要是因为其对加密函数的支持性高,为开发者直接提供了md5\\sha1\\sha256\\sha512四个官方包,我们直接调用包即可,大大减少了代码的冗余。代码举例: //sha-256 go func Sum256 (data []byte)[32]byte var d digest d.Reset() d.Write(data) return d.checkSum() //MD5 go func Md5(str string) string h := md5.New() h.Write([]byte(str)) return hex.EncodeToString(h.Sum(nil)) 对于不同的输入,SUM256都能返回一个32字节的值。

geth将solidity与go交互简单

要使go与solidiy交互只需要以下步骤

  • 安装geth
  • 编写智能合约
  • 复制合约abi
  • 控制台输入命令
  • go调用solidity生成.go文件中的函数 代码实例

    编写智能合约

```solidity // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0; contract Faucet //每天转账次数 uint transferNum=0; //每次转账金额 uint eachAmount =1 ether;

function withdraw(address addr) payable public payable(addr).transfer(eachAmount); transferNum++;

fallback() payable external 
receive() payable external 

```

复制abi

如果是使用remix编写智能合约的话,只需要找到abi按钮即可复制

控制台输入命令

cmd 文件夹为合约保存的文件夹 geth abigen --abi fileName.abi --pkg packageName --type fileName --out fileName.go

GO调用

当生成.go文件后,它就相当于一个接口,我们只需要调用就好了。

速度与效率

Go不是一种解释型语言——它是编译型的。这大大地(drastically)减少了在运行中突然出现的Bug。这一点有点像C语言,代码先被编译,错误会在编译时出现并得到处理,然后才能运行。 并且GO语言的开发效率和性能效率都是非常快的,集各种优点于一身,区块链正需要这种高效性。

分布式系统的宠儿

Docker,作为一种微服务的容器,也是用Golang开发出来的,是当下非常火热的微服务框架。

结语

go语言的优点还有很多,就不多赘述了。

本文正在参加技术专题18期-聊聊Go语言框架

Go 语言发展史及史上最全 Go 语言知识图谱!

Go 语言发展至今已经过去十年多了,是目前最流行的新兴语言,云计算领域的首选语言,而且目前随着区块链的流行,Go 再次成为了这个领域的第一语言,以太坊,IBM 的 fabric 等重量级的区块链项目都是基于 Go 开发。今天和大家一起聊聊 Go 的发展历史,同时发布我们 Gopher China 整理的 Go 知识图谱。


Go 语言发展史

我们先从下面一张图来了解 Go 的来源:



这是一封由 Rob Pike 在 2007 年 9 月 25 号,星期二,下午 3:12 回复给 Robert Griesemer、Ken Thompson 的有关编程语言讨论主题的邮件,邮件正文大意为:在开车回家的路上我得到了些灵感。1.给这门编程语言取名为“go”,它很简短,易书写。工具类可以命名为:goc、 gol、goa。交互式的调试工具也可以直接命名为“go”。语言文件后缀名为 .go 等等


这就是 Go 语言名字的来源,自此之后 Robert、Rob 和 Ken 三个人开始在 Google 内部进行了研发,一直到了 2009 年,Go 正式开源了,Go 项目团队将 2009 年 11 月 10 日,即该语言正式对外开源的日字作为其官方生日。源代码最初托管在 code.google.com 上,之后几年才逐步的迁移到 GitHub 上。


但是,现在我们回顾 Go 语言在设计的最初概念构建阶段,即更早的两年,见证语言发展历史上的一系列早期事件。


第一个事情是在开发设计 Go 语言过程中的第一个重大惊喜是收到了以下这封邮件:

Go 语言发展史及史上最全 Go 语言知识图谱!

这是一封由 Ian Lance Taylor 在 2008 年 6月 7 日(星期六)的晚上 7:06 写给 Robert Griesemer、Rob Pike、 Ken Thompson 的关于 Go gcc 编译器前端的邮件。邮件正文大意如下:我的同事向我推荐了这个网站 http://…/go_lang.html 。这似乎是一门很有趣的编程语言。我为它写了一个 gcc 编译器前端。虽然这个工具仍缺少很多的功能,但它确实可以编译网站上展示的那个素数筛选程序了。


Ian Lance Taylor 的加入以及第二个编译器 (gcc go) 的实现 在带来震惊的同时,也伴随着喜悦。这对 Go 项目来说不仅仅是鼓励,更是一种对可行性的证明。语言的第二次实现对制定语言规范和确定标准库的过程至关重要,同时也有助于保证其高可移植性,这也是 Go 语言承诺的一部分。自此之后 Ian Lance Taylor 成为了设计和实现 Go 语言及其工具的核心人物。


第二件事情是 Russ Cox 在2008年带着他的语言设计天赋和编程技巧加入了刚成立不久的 Go 团队。Russ 发现 Go 方法的通用性意味着函数也能拥有自己的方法,这直接促成了 http.HandlerFunc 的实现,这是一个让 Go 一下子变得无限可能的特性。Russ 还提出了更多的泛化性的想法,比如 io.Reader 和 io.Writer 接口,奠定了所有 I/O 库的整体结构。


第三件事情是聘请了安全专家 Adam Langley 帮助 Go 走向 Google 外面的世界。Adam 为 Go 团队做了许多不为外人知晓的工作,包括创建最初的 golang.org 网站以及 build dashboard。不过他最大的贡献当属创建了 cryptographic 库。起先,在我们中的部分人看来,这个库无论在规模还是复杂度上都不成气候。但是就是这个库在后期成为了很多重要的网络和安全软件的基础,并且成为了 Go 语言开发历史的关键组成部分。许多网络基础设施公司,比如 Cloudflare,均重度依赖 Adam 在 Go 项目上的工作,互联网也因它变得更好。我记得当初 beego 设计的时候,session 模块设计的时候也得到了 Adam 的很多建议,因此,就 Go 而言,我们由衷地感谢 Adam。


第四个事情就是一家叫做 Docker 的公司。就是使用 Go 进行项目开发,并促进了计算机领域的容器行业,进而出现了像 Kubernetes 这样的项目。现在,我们完全可以说 Go 是容器语言,这是另一个完全出乎意料的结果。


如今 Go 已经是云计算编程语言。想象一下:一个只有 10 年发展经历的编程语言已经成为了如此巨大而且正在不断发展的行业的主导者,这种成功是每个人都无法想象的。如果你认为“主导”一词太过强势,请看看中国的互联网。但是凡是去过中国,参加过中国区 Go 语言大会的人都可以证实:Google 趋势图的数据是真实的。Go 在中国的使用非常火爆!



回顾过去十年的 Go 设计和开发,Go 社区的发展尤其惊人。技术会议和聚会的数量、不断增加的 Go 项目贡献者名单、大量使用Go 实现的开源代码库、使用 Go 开发公司数量(有些甚至只使用 Go 开发):任何一项数据考量后都足以让人震惊!


Gopher China 大会正在飞速发展。第一次大会的举办只不过是三年前的事情,但今天在全国各地有无数小的本地“聚会”。很多 gopher 群体相聚在某个地方分享有关 Go 语言设计的想法,分享着项目的成功经验。


就我本人而言,很荣幸的参与了 Go 整个成长的过程,从第一次在盛大接触 Go 语言开始写项目到今天,自己已经写过大大小小上百个 Go 项目;从第一次和老许一起策划举办第一届 Gopher China 大会到今天已经过去三年,我们的大会一年比一年的规模壮大;从第一次组织 meetup 到现在全国各地 meetup 的组织,Gopher 社区越来越庞大,而且很欣慰的看到 Go 实实在在的帮到了很多工程师很好的去完成项目。这里要感谢我们社区的每一位 Gopher,是你们的辛勤付出,你们的每一次推广,你们的每一次宣传,你们的每一次使用,让 Gopher China 成为一个传奇。


 Go 知识图谱

更清晰的内容可访问以下网站:

https://github.com/gocn/knowledge



第四届 Gopher China 大会4月将在上海举办,今年也是第一次增加了会前的 Go 语言培训 。本届的大会无论从规模,内容都将有更多值得大家期待的!

相关阅读:




点击阅读原文报名2018 Gopher China 大会

最后一波早鸟票!

4月1日起恢复888原价〜

Go 中国粉丝独家福利优惠码GopherChina

报名输入可享85折优惠!数量有限,先用先得〜

以上是关于GO语言凭什么是区块链的首选语言的主要内容,如果未能解决你的问题,请参考以下文章

Go语言中文网中秋免费送书活动:《Go 语言公链开发实战》

GO语言七步打造区块链

如何用 GO 语言打造区块链

顺势而为!传智播客新开Go语言与区块链学科

想快速入门Go语言?来看看GO社区的知识图谱,非常详尽

用go语言撸一个简易版的区块链