前言
本人在加入比原鏈之前一直是做Java開發的,當初看到Go還有點猶豫,還怕過不了面試,結果是否掌握一門語言的考量確實沒那么高,我順利入職比原鏈,并在半個月內很快掌握Go并能夠進行核心項目的開發。
Java語言在較大的成熟項目上具有優勢,但是在區塊鏈開發中確實會有很多短處,比如在協程處理上,還有Java語言本身不夠靈活等等,當然選擇使用Go主要是因為其在區塊鏈的流行程度。
區塊鏈的流行語言
在區塊鏈公鏈的開發圈子里,我們找到了一些流行的編程語言,有C++、Golang、Python和最近新起的Rust等等。
稍微對比較有名的項目采用的編程語言做個統計,如下圖:
德國社區銀行聯邦協會:數字歐元對小銀行來說是危險的:金色財經報道,德國社區銀行聯邦協會(BVR)的一項調查發現,引入數字歐元可能會對德國銀行業造成毀滅性后果。?根據調查,如果每人將3000歐元兌換成CBDC,則714家機構中只有56家能夠滿足法律要求的流動性緩沖。這意味著銀行將不得不尋找替代的、更昂貴的資金來源。
相比之下,如果上限為500歐元,則只有18家機構會遇到問題。BVR提出此限制是因為它將其視為現金的數字版本。然而,可能的情況是并不是每個人都會全額轉換,因此危險可能被夸大了。?
此外,正如歐洲央行行長Fabio Panetta等人所指出的那樣,數字歐元的目的是成為一種支付手段,而不是一種投資形式。[2023/3/10 12:53:08]
老一代的公鏈,比如Bitcoin,Litecoin一般使用C/C++較多,新一代的公鏈比如以太坊,聯盟鏈翹楚超級賬本,開始較多使用Go語言,當然我們看到Rust的發展勢頭也很猛,近兩年的很多公鏈比如波卡,Grin都開始采用Rust語言開發了。
UGC音頻社區荔枝FM將于5月20日發布首款多人共創音頻數字藏品:5月4日消息,UGC音頻社區荔枝FM宣布推出音頻數字藏品計劃,將在5月20日發布首款數字藏品并在阿里拍賣啟動銷售,這也是國內首款多人共創音頻數字藏品。
據悉,荔枝FM本次將打造以愛為主題的數字藏品,總計發行8款,8款聲音數字藏品有各國語言版、方言版、古代版、娃娃音版等版本,每款發布5200份,形成荔枝告白電波,平臺內主播、數字藏品愛好者、用戶均可共同參與數字藏品創建。[2022/5/4 2:49:00]
Go語言的優勢
部署簡單
Go編譯生成的是一個靜態可執行文件,除了glibc外沒有其他外部依賴。這讓部署變得異常方便:目標機器上只需要一個基礎的系統和必要的管理、監控工具,完全不需要操心應用所需的各種包、庫的依賴關系,大大減輕了維護的負擔。可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個文件上去就完成了。
性能優秀
數據:美國拉丁裔社區成員的加密采用率最高:10月31日消息,數字資產最近在日常生活中變得越來越普遍。2021年第一季度,全球每日比特幣交易數量達到367536。僅比特幣一種資產現在就達到每天約200億美元的在線交易。不僅如此,那些熟悉數字資產和加密貨幣的人也對它們深信不疑。幣安2021年的“全球加密用戶指數”顯示,人們對加密貨幣有97%的信心。
從比例上看,美國拉丁裔(Latinx)社區成員的加密采用率最高,大約31%的西班牙裔擁有比特幣,同樣的數據顯示,25%的比特幣所有者是拉丁裔。這種令人印象深刻的采用率背后有很多原因,特別是因為這個群體獲得傳統財富的機會較少。2016年,拉丁裔家庭擁有的財富不到白人家庭的六分之一。2020年,居住在美國的墨西哥人向墨西哥的家庭成員匯款超過400億美元,其中許多匯款是通過加密貨幣進行。
雖然拉丁裔社區似乎走在了采用數字資產并利用其改善日常生活的前沿,但重要的是,加密貨幣和數字資產行業的人要努力將邊緣化群體納入其未來計劃,并融入和接納這些社區,繼續沿著這種采用的上升軌道前進,并確保每個人都意識到數字資產可以提供的廣泛好處。(Cointelegraph)[2021/10/31 21:12:57]
雖然不如C和Java,但通常比原生Python應用還是高一個數量級的,適合編寫一些瓶頸業務。內存占用也非常省。
IPFS中國社區發起人:若Filecoin官方無視礦工社區狀況 或會發生社區共識分裂:此前有區塊鏈媒體發布消息稱,為和Filecoin官方博弈,先河系五家頭部礦商包括智合云已經集體停擺示威。引起社群里的圈內人士的爭議。IPFS中國社區發起人、時空云科技董事長賴楚航回應稱,礦工現在就是沒有幣用于抵押,經濟模型設計問題,而新的經濟模型(25%直接釋放)還沒有發布合入。如果持續這種狀態,礦工就得在二級市場高價買幣,很明顯是劃不來的,行不通。現在大家都在等官方的答復,如果官方無視礦工社區狀況,可能會發生社區共識分裂,項目可能堪憂。(巴比特)[2020/10/17]
并發性&通道
Goroutine和channel使得編寫高并發的服務端軟件變得相當容易,很多情況下完全不需要考慮鎖機制以及由此帶來的各種問題。單個Go應用也能有效的利用多個CPU核,并行執行的性能好。
良好的語言設計
Go非常簡單,且易于學習。從學術的角度講Go語言其實非常平庸,不支持許多高級的語言特性;但從工程的角度講,Go的設計是非常優秀的:規范足夠簡單靈活。正是由于Go的簡單性,任何的Python、Elixir、C++、Scala或者Java開發者皆可在一月內組建成一個高效的Go團隊。
動態 | MovieBloc收購韓國區塊鏈社區Cobak 并將和Block72達成合作:據官方消息,MovieBloc宣布收購韓國區塊鏈社區Cobak。Cobak是韓國數字貨幣社區,擁有領先的移動服務及韓國大量的用戶和錢包。
?
為使Cobak成為透明、活躍的加密社區,將Cobak服務擴展到全球加密社區,為促進KYC合規方面做出貢獻,并在服務中大規模應用加密貨幣,收購Cobak后,MovieBloc將與跨國區塊鏈咨詢公司Block72建立合作伙伴關系。Block72 的合伙人Sinhae Lee將出任MovieBloc外部董事。Block72自己的項目 STP將會積極向Cobak引入其合作伙伴項目及投資組合,并且只會將優質的項目提供給其支持者 。[2020/2/18]
標準庫&工具
Go目前已經內置了大量的庫,特別是網絡庫非常強大。更重要的是Go自帶完善的工具鏈,大大提高了團隊協作的一致性。比如gofmt自動排版Go代碼,很大程度上杜絕了不同人寫的代碼排版風格不一致的問題。把編輯器配置成在編輯存檔的時候自動運行gofmt,這樣在編寫代碼的時候可以隨意擺放位置,存檔的時候自動變成正確排版的代碼。此外還有gofix,govet等非常有用的工具。
團隊牛逼
Go語言后面的支持者是Google,語言足夠在各種場景下得到檢驗,同時創始人還是C語言之父,對后續的發展和創新可期。
Go成功的項目
Go語言在云時代得到了比較廣泛的應用,特別是Docker和K8s這樣的殺手級產品的出現讓Go語言在工程界占有一席之地。
除此之外,Go語言還有非常多的成功運行中的軟件:
nsq:bitly開源的消息隊列系統,性能非常高,目前他們每天處理數十億條的消息;
packer:用來生成不同平臺的鏡像文件,例如VM、vbox、AWS等,作者是vagrant的作者;
skynet:分布式調度框架;
Doozer:分布式同步工具,類似ZooKeeper;
Heka:mazila開源的日志處理系統;
cbfs:couchbase開源的分布式文件系統;
tsuru:開源的PAAS平臺,和SAE實現的功能一模一樣;
groupcache:memcahe作者寫的用于Google下載系統的緩存系統;
god:類似redis的緩存系統,但是支持分布式和擴展性;
gor:網絡流量抓包和重放工具;
生態卡位和隱性標準
除了打鐵還需自身硬之外,還有些機遇和運勢,讓區塊鏈選擇的了Go語言。我們來看區塊鏈2.0以來最成功的公鏈和聯盟鏈代表,以太坊和超級賬本Fabric,無一例外都選擇使用Go作為主導開發語言。
這兩大超級區塊鏈的影響力可不是一般項目可以比擬的,不僅在生態中占據了大的坑位,事實上還隱性的制定了區塊鏈的標準,不論是公鏈中的智能合約,還是聯盟鏈的技術,都繞不開以太坊和Fabric,那么對于一家想要做區塊鏈技術選型的公司來說,最快捷的實現是什么?自然是直接照搬這兩個項目的創新,再捷徑一點就是直接拿開源代碼改,那么自然Go語言就成為后來者的首選,換種語言重新實現一遍難度也不小,而且如果選擇一些創新但不是非常成熟的語言還會缺失一些特定庫的支持從而導致項目無法開展。
很多人對以太坊的影響力毋庸置疑,但實際上Fabric在企業區塊鏈部署上的影響力更不容小覷:
圖表來源《2019年全球企業區塊鏈基準研究報告》
HyperledgerFabric是已部署的企業區塊鏈網絡中使用最多的協議框架,超級賬本Hyperledger是集成商和軟件開發平臺最常支持的協議框架,比例達到了53%。
而在所有的區塊鏈技術書籍里面,有關超級賬本的書籍是賣的最為火爆這個事實也是側面印證了超級賬本Hyperledger的影響力。
比原鏈在Go語言中的實踐
在選型編程語言的過程中,考量了C,C++,Java,但C/C++大項目維護難度大,而Java又略顯笨重,此時Go語言已經在區塊鏈項目上大放異彩,也逐漸形成技術和人才的一個頭部效應,那么順應潮流進行技術選型自然也會減少初始比原鏈項目遇到的阻力,當然在逐漸開發過程中,我們也感受到了選用Go語言帶來的便利和優勢。
Go在區塊鏈上的一個Case
從技術上來說,區塊鏈節點是需要多模塊異步協同工作的,所以Go語言并發性和通道就顯得非常有優勢,我們看下面交易驗證的例子:
我們使用Routine+Ch+WaitGroup在30行代碼之內,就可以構建一個并發的驗證交易的功能,在高配置的服務器的情況下,可以跑出10萬以上的TPS。
輕松變成Go語言大師
我當初進入比原之前也沒有做過Go語言開發,但都能夠很快上手,基本在半個月內能夠參與核心代碼的開發和維護了,這就是語言簡單對團隊構建帶來的好處。
統一的協作
從協作上來說,通過gofmt自動排版Go代碼,能夠讓核心團隊成員甚至社區開發者提交的代碼風格的差異性降到最小,提升項目的整體質量和可維護性。
總結
Go語言本身的特質和優勢為其做好了鋪墊,而以太坊和超級賬本兩個超級區塊鏈項目的加持也讓Go語言成為了很多區塊鏈項目的首選。
比原鏈選用Go語言也充分體會到了其開發區塊鏈底層的優勢,但是無需落入語言之爭的陷阱,講求實用主義才是做工程應有之義,比原鏈核心項目是用Go語言完成,但是周邊的很多子項目也有用Java,Python或者JavaScript實現,畢竟生態的多樣性才是一個項目長久的根本。
Tags:區塊鏈AVABLOCBLO有人靠區塊鏈4天就掙了30萬塊錢LAVAX幣hiblocksBlockify.Games
這幾天有朋友很不解的問我,我看好比特幣,也持有比特幣,卻為什么要做空比特幣?稍后我再來回答這個問題。幣圈流傳很久的一句話叫做:比特幣看空不做空.
1900/1/1 0:00:00量子計算不會消滅區塊鏈。10月23日,谷歌已經成功實現“量子霸權”的論文終于以封面文章的形式在《Nature》雜志150周年版上重磅發表.
1900/1/1 0:00:00周末,加密貨幣市場發生暴跌,BTC從沖擊9200到今日短暫的跌破7700美元,短短三日BTC跌幅達到1500美元.
1900/1/1 0:00:00整體行情: 在談今日行情之前我們先了解一下FCoin的一些進展,昨晚FCoin的一則催淚告白是圈內的一顆重磅炸彈,維權是鐵定的了,承認債務也無法抵消運營失敗、能力不足的事實.
1900/1/1 0:00:00胡說扒道 與其他新興的科技行業一樣,區塊鏈是一個高度技術化的領域,面臨著重大的金融、和監管等方面的重大挑戰,但同時也有著極大的誘惑力和爆炸性增長潛力.
1900/1/1 0:00:00據路透社今日消息,加密貨幣挖礦巨頭Hyperblock將收購北美礦業公司CryptoGlobal所有股份,后者在本次并購中的估值為1.06億美元.
1900/1/1 0:00:00