关注微信公众号《云原生CTO》更多云原生干货等你来探索
专注于 云原生技术
分享
提供优质 云原生开发
视频技术培训
面试技巧
,及技术疑难问题 解答
云原生技术分享不仅仅局限于Go
、Rust
、Python
、Istio
、containerd
、CoreDNS
、Envoy
、etcd
、Fluentd
、Harbor
、Helm
、Jaeger
、Kubernetes
、Open Policy Agent
、Prometheus
、Rook
、TiKV
、TUF
、Vitess
、Argo
、Buildpacks
、CloudEvents
、CNI
、Contour
、Cortex
、CRI-O
、Falco
、Flux
、gRPC
、KubeEdge
、Linkerd
、NATS
、Notary
、OpenTracing
、Operator Framework
、SPIFFE
、SPIRE
和 Thanos
等
为什么 GoLang 用于区块链?
在为什么之前,我们聊一下什么是区块链?首先区块链是一个不可变的交易分类账,在对等节点的分布式网络中维护。这些节点每个都通过应用已由共识协议验证的交易来维护分类帐的副本,这些交易分组为包含将每个块绑定到前一个块的哈希的块。
让我们把它称为一种最近越来越流行的解决问题的技巧。现在,这种技术可以在任何支持OOPs
、数据结构等基本原理的语言中实现。从开发人员的角度来看,语言应该易于理解和高效。
一个可以用的OOPS
良好的知识,数据结构和JavaScript
例如Java
,NodeJS
,Python
和Ruby
,甚至与C ++
的任何语言实现Blockchain
。如果有这么多选择,那么为什么要 Go (GoLang)
?
首先,Go
是google家族的开源编程语言。根据“Go
的联合设计师Rob Pike
”的说法,该语言的开发是为了解决google在开发软件基础设施时遇到的一些内部问题。它像Python
一样是动态的,像C
一样简单。
易于长期维护
一个区块链可能需要数千行代码,我们想要一种语言,可以使维护这样一个庞大的项目非常容易。Go
是简单的,它有非常少的怪癖,节省时间。而且,要学习的东西很少,做典型事情的方法也很少。
速度和效率
Go
是一种编译语言,因此它减少了在解释语言(如Python
)中发生的“实时”错误的开销。这就像在C
语言中,首先编译代码,然后显示错误并要求解决,然后只运行代码。
区块链需要非常高效,这主要是由于加密计算和它必须在网络中传播和存储的大量数据。
适用于分布式系统
使用Go
开发的工具和软件有很多。用于微服务的容器Docker
是使用Golang
构建的。
与PHP
相比,使用Go
构建的微服务可以轻松扩展到数百万个请求。
goroutines
Go
具有异步或并行运行多个程序的能力,这提高了吞吐量。在java
中,线程用于实现并发,而在Go
中则使用goroutine
。区块链具有广泛的并行操作重要性,这一特性非常方便。此外,并行运行许多功能的能力允许 Go
在分布式系统上运行——这是区块链技术的主要需求。
5.3 参考资料
参考 [1]
参考资料
[1]
参考: https://medium.com/@pkthakur01/why-golang-for-blockchain-40f874f2ce1b