以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > DYDX > Info

COI:社區觀點:我是如何從Java轉型為Go區塊鏈工程師-ODAILY

Author:

Time:1900/1/1 0:00:00

前言

本人在加入比原鏈之前一直是做Java開發的,當初看到Go還有點猶豫,還怕過不了面試,結果是否掌握一門語言的考量確實沒那么高,我順利入職比原鏈,并在半個月內很快掌握Go并能夠進行核心項目的開發。

Java語言在較大的成熟項目上具有優勢,但是在區塊鏈開發中確實會有很多短處,比如在協程處理上,還有Java語言本身不夠靈活等等,當然選擇使用Go主要是因為其在區塊鏈的流行程度。

區塊鏈的流行語言

在區塊鏈公鏈的開發圈子里,我們找到了一些流行的編程語言,有C++、Golang、Python和最近新起的Rust等等。

稍微對比較有名的項目采用的編程語言做個統計,如下圖:

ApeCoin社區發起新提案AIP-96:將為EthGlobal和Gitcoin提供資助:金色財經報道,ApeCoin特別委員會成員Maaria Bajwa發起新提案AIP-96,提議ApeCoin DAO為EthGlobal和Gitcoin等開源項目提供資助。該提案名為“Funding For Public Goods (EthGlobal& Gitcoin)”,要求ApeCoin DAO貢獻價值20萬美元的APE Token,其中4.5萬美元用于支持ETHOnline黑客馬拉松并向ETHOnline的另一個社區捐贈 5000 美元、10萬美元資助一個專門的 Gitcoin ApeCoin 生態系統計劃、5萬美元用于資助Gitcoin的氣候項目。[2022/9/26 7:20:20]

老一代的公鏈,比如Bitcoin,Litecoin一般使用C/C++較多,新一代的公鏈比如以太坊,聯盟鏈翹楚超級賬本,開始較多使用Go語言,當然我們看到Rust的發展勢頭也很猛,近兩年的很多公鏈比如波卡,Grin都開始采用Rust語言開發了。

區塊鏈公司CBI與CM將合作推出LGBTQ社區元宇宙Qtopia:5月27日消息,區塊鏈公司Crypto Blockchain Industries(CBI)宣布,將與Crypto Meta LLC(CM)合作推出首個以LGBTQ為重點的元宇宙Qtopia,后者將作為CBI正在開發的元宇宙中心Alphaverse中的虛擬社區。

據悉,Qtopia元宇宙旨在成為LGBTQ社區成員的在線聚會和聚會場所,預計將在2023年初發布。(Coinquora)[2022/5/27 3:45:31]

Go語言的優勢

部署簡單

Go編譯生成的是一個靜態可執行文件,除了glibc外沒有其他外部依賴。這讓部署變得異常方便:目標機器上只需要一個基礎的系統和必要的管理、監控工具,完全不需要操心應用所需的各種包、庫的依賴關系,大大減輕了維護的負擔。可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個文件上去就完成了。

Swerve多簽名持有者投票通過 三位社區成員當選:10月2日,穩定幣兌換平臺Curve分叉項目Swerve官方發推表示, SIP-9 T5提議已正式通過社區投票。其中,SF、Lex Moskovski和Ivan Martinez三位社區成員當選多簽持有者。至此,加上此前已經選出FTX創始人Sam Bankman-Fried等四位外部多簽名持有者,Swerve財政部將總共有7名多簽名持有者。[2020/10/2]

性能優秀

雖然不如C和Java,但通常比原生Python應用還是高一個數量級的,適合編寫一些瓶頸業務。內存占用也非常省。

并發性&通道

Goroutine和channel使得編寫高并發的服務端軟件變得相當容易,很多情況下完全不需要考慮鎖機制以及由此帶來的各種問題。單個Go應用也能有效的利用多個CPU核,并行執行的性能好。

良好的語言設計

Go非常簡單,且易于學習。從學術的角度講Go語言其實非常平庸,不支持許多高級的語言特性;但從工程的角度講,Go的設計是非常優秀的:規范足夠簡單靈活。正是由于Go的簡單性,任何的Python、Elixir、C++、Scala或者Java開發者皆可在一月內組建成一個高效的Go團隊。

動態 | Ripple旗下Xpring為開發人員啟動社區web頁面和論壇:據Cointelegraph消息,Ripple的Xpring將為其開發人員平臺啟動一個稱為“開發人員關系”(developer relations)或“DevRel”的社區web頁面和論壇。Xpring網站的一篇博客文章解釋說,Xpring的大多數員工都是在工程和產品部門工作。該帖子寫道:“我們將DevRel視為Xpring的耳朵和嘴巴。” Xpring最初是Ripple的投資部門。在2019年10月,Ripple還推出了一個Xpring開發者平臺,為創作者提供了一個數字化貨幣的平臺。[2020/2/2]

標準庫&工具

Go目前已經內置了大量的庫,特別是網絡庫非常強大。更重要的是Go自帶完善的工具鏈,大大提高了團隊協作的一致性。比如gofmt自動排版Go代碼,很大程度上杜絕了不同人寫的代碼排版風格不一致的問題。把編輯器配置成在編輯存檔的時候自動運行gofmt,這樣在編寫代碼的時候可以隨意擺放位置,存檔的時候自動變成正確排版的代碼。此外還有gofix,govet等非常有用的工具。

動態 | V神因曾為13個ICO項目站臺再次遭受批評 網友稱ETH社區在掩蓋事實:據BeInCrypto消息,8月18日,有網友Udi Wertheimer發推文譴責ETH社區引起各方討論,V神因曾為13個ICO項目站臺近日再次遭受批評。關于關于V神是否鼓勵人們參與ICO的回應,以太坊社區稱V神只參與站臺3個ICO(OmiseGo,Kyber,WeTrust)。而根據BitMEX Research的推文回應,2017年發布的報告顯示,以太坊聯合創始人Vitalik Buterin(V神)當年是參與ICO展臺最多的人,被確定為至少13家初始代幣發行(ICO)的顧問。

報告顯示,V神作為項目顧問參與的ICO包括Zcash,We Trust,TenX,Nuco,Augur,Kyber Network,Smartpool,Gnosis,Storj,Akasha和DAO。然而,報告也被人指出錯誤,因為Akasha,Zcash和Smartpool甚至沒有ICO,而V神本人澄清說他沒有在Nuco中持有任何代幣。作為回應,BitMex Research表示他們的數據是準確的,并補充說,Akasha確實將Vitalik Buterin列為顧問,試圖獲得大眾的銷售支持,但最終未能產生足夠的需求。

而此前,V接受《星報》采訪時還呼吁政府要規范代幣銷售。推特網友Udi Wertheimer則評論稱:以太坊社區還在繼續掩蓋事實。[2019/8/23]

團隊牛逼

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:區塊鏈OINCOICOIN區塊鏈域名如何注冊hotcoinglobal交易所叫什么名字Zapp CoinCatzCoin

DYDX
STORJ:谷歌入局區塊鏈,小扎、比爾蓋茨都慌了!-ODAILY

谷歌終于要對區塊鏈這塊蛋糕動手了!要知道就在不久前,谷歌緊跟Facebook的腳步,宣布禁止發布任何與虛擬貨幣相關的廣告,ICO、虛擬貨幣錢包和虛擬貨幣交易平臺全部被“禁言”! 沒想到.

1900/1/1 0:00:00
DAG:DAG系統區塊大小和出塊時間的通俗解析之二-ODAILY

大家好,上次分享我們講解了區塊大小和出塊時間跟擴容的關系,我們特別的闡述了在區塊鏈的系統中這兩個變量是如何互動和制約的.

1900/1/1 0:00:00
BTC:行情全靠喊,演戲來配合,避險全線回吐-ODAILY

北京時間今日凌晨,美國當地時間1月8日,美國總統特朗普在白宮宣布,伊朗對美軍事基地的襲擊未造成任何人員傷亡,相關軍事設施損毀也不嚴重.

1900/1/1 0:00:00
BAA:區塊鏈技術如何重塑互聯網?-ODAILY

區塊鏈技術,或者說用于去中心化記賬的塊鏈數據結構,是互聯網技術的一個小分支。由于區塊鏈技術融合了分布式存儲、加密算法、P2P網絡、共識機制、智能合約等多個組件,因此呈現出不同于傳統互聯網的“不可.

1900/1/1 0:00:00
ZEC:減半幣和國際動蕩會帶來牛市嗎?-ODAILY

距離比特幣的減半時間還有四個月,眼睛一眨就過去了。 比特幣在昨天過了十一周年“生日”,2009年1月3日,中本聰挖出了第一筆比特幣,產生了創世區塊,并在創始區塊里留下了一段永遠不可修改的話語“t.

1900/1/1 0:00:00
GPT:人類與機器的交互:區塊鏈+保險-ODAILY

編者按:本文來自巴比特,作者:孫副社長,TokenClub研究院分析師,星球日報經授權發布。保險行業是金融行業重要的組成部分,也是社會保障體系的重要支柱.

1900/1/1 0:00:00
ads