如果你是開發人員並且你擁有任何位元幣,那麼為位元幣核心做出貢獻可能是你可以做的最好的事情之一,這可以幫助你進行投資。在本文中,我將簡要介紹如何為core開發做出貢獻。
在我們深入了解為core做出貢獻的實際細節之前,需要了解一些可以解決問題的注意事項。
首先,位元幣核心是高標準的。作為乙個菜鳥,你不太可能將瘋狂的工作量證明變更後提交請求合併到core中。像任何高標準管理一樣,你從零聲譽開始,一路向上。
好訊息是沒有人關心你的背景。無論你是14歲的印度人還是45歲的財富500強公司的首席技術官,唯一真正重要的是你的工作質量。
其次,你應該相應地設定你的期望。值得注意的核心開發人員如pieter wuille,cory fields和gregory maxwell通過多年的血汗,淚水贏得了他們的尊重。新增乙個糾正拼寫錯誤的pr並不會贏得pieter wuille級別的尊重。好的工作會贏得你的認可和尊重,但只有在你生產了一段時間之後。
第三,這不是一條容易的道路。成為x公司的頂級開發人員並不一定會讓你成為一名優秀的核心開發人員。造成這種情況的原因有很多種,但總的來說,你的工作必須滿足一些非常高標準的測試,文件和**審查,即使是非常稱職的技術公司也是如此。
總而言之,如果你擁有謙遜,追求卓越的追求,那麼core的貢獻將使你成為更好的開發人員,**審閱者,記錄員和測試人員。
你需要一些知識和技能才能開始。
位元幣核心主要有兩種語言,c++和python。如果你希望貢獻,你最有可能必須學習至少其中一些。
源**控制通過git進行管理。至少,你應該知道如何從origin獲取,如何建立主題分支以及如何rebase。如果你正在測試其他人的**,你還應該知道如何將多個儲存庫新增到本地開發環境中,以便你可以獲取並測試**。
對core的所有更改都在github上以pr為基礎合併,因此你需要乙個github帳戶。
最後,你需要知道如何在平台上安裝和刪除軟體包。這些說明非常詳細,但它可以幫助你根據需要新增和刪除zmq。
開始時你想要做的第一件事是閱讀一些文件。 readme檔案和貢獻指南是開始的好地方。
請注意,你不必了解我建議的每個文件中的所有內容。如果你遇到一些你不理解的東西,irc,stackexchange和slack上有很多非常好的人可以幫你。
git clone [email protected]:bitcoin/bitcoin
下一步將是設定你的開發環境。這在很大程度上取決於你所使用的平台,但編譯是你需要經常進行的操作,因此將這部分放下來是非常值得的。
此外,你還需要執行所有整合測試,因此請務必在執行以下說明時開啟gui和zmq。
在你設定環境時,如果某些內容無效,請在提交文件pr之前先google錯誤。如前所述,irc,stackexchange和slack是很好的資源,但請不要問簡單問題而且耗盡每個人時間。
既然你已經編譯了所有內容,那麼下一步就是測試軟體。值得慶幸的是,位元幣核心有各種單元和整合測試,以檢查你剛剛編譯的軟體是否正常工作。
首先,執行位於此處的單元測試。單元測試與其他所有內容一起編譯,因此你需要做的就是執行生成的二進位制檔案。檢查所有測試是否通過。如果他們不這樣做可能會錯過一些指令。
如果所有單元測試都通過,請執行此處的整合測試。你將要執行擴充套件測試。特別是修剪測試需要很長時間才能執行,因此你希望在將來執行整合測試時排除該測試。
再次,檢查所有測試是否通過。在最後顯示摘要之前,你將看到很多點。如果某些事情沒有通過,你可能會錯過一些指令,儘管有時候,一些整合測試可能會因ram和cpu而變得有點浮躁。
現在你已經設定了系統,你可以開始貢獻!
你可能認為貢獻意味著新增一堆**,傳送pr並獲得榮耀。實際上,很多任務作都圍繞著其他人提交的審查和測試**。它有助於理解pr如何合併所涉及的步驟。
大多數人認為對開源專案的貢獻只是貢獻**,但實際上,測試和審查對專案的成功更為重要。正如我們在最近的以太坊奇偶校驗中看到的那樣,缺乏審查和測試通常是許多專案**現安全漏洞的原因。
審查和測試也很關鍵,因為通常很難有涵蓋所有案例的對抗心態。有許多眼睛看並測試**有助於發現可以利用**的可能方式。
最後,不僅審查和測試對專案有益,而且它們對你有好處!審查和測試將迫使你了解有關**庫的更多資訊,並且甚至比編寫**更能讓你理解。
為了適應貢獻過程,你不應該首先新增大量的pr。相反,作為乙個沒有聲譽的新開發者,最好的辦法是開始審查和測試其他人的工作。審查和測試往往是瓶頸,因此你可以同時在社群中貢獻並贏得一些聲譽。
通常,在了解**執行的操作之前,你將無法對pull請求進行良好的審核。正如他們在編碼中所說,寫作比閱讀容易得多,所以花些時間來真正理解**。
大多數情況下,pull請求將包括乙個或多個測試。如果編碼器沒有提供測試覆蓋,請嘗試理解為什麼,重構通常不會出於明顯的原因。如果你認為應該進行測試,你可以在pr中寫下「這需要測試」。更好的是,自己編寫測試並讓作者知道它可以在公關中挑選出來!這是乙個很好的方式來建立你正在審查的**的人的一些善意。
經過測試,請務必在pr中註明你已經過測試。
最終,當你感覺自己建立自己的pull請求時,你將達到一定程度。pull請求可以是從新增文件到共識關鍵功能的任何內容。無論發生什麼變化,提出良好pull請求的關鍵是讓它易於理解,無需審查。
為此,請不要通過讓你的公關單一次提交3000行更改來折磨你的審稿人。將這些更改分成易於審核的提交,少於300行(或者可能少於100行!)並進行適當分組。例如,你應該將格式更改放入乙個提交中,將實際編碼更改為另乙個中的另乙個**塊的大型移動。
努力解釋你正在做什麼以及你在每次提交中所做的事情背後的原因。我不能足夠強調這一部分。逆向思考使pr中的所有內容都易於理解!如果你不這樣做,你將不會讓任何人審查你的**。
以下是你可以立即提供的一些公關想法(請記住,請檢視你提交的pr的3倍!)
位元幣核心使用的軟體開發實踐在其他環境中通常不會被遵循。進入core開發的大多數人發現這個過程過於嚴格和限制。我保證每一步都有理由。
記住要有禮貌,溫柔和委婉。以謙虛的態度和渴望學習的方式進來,這將使你不僅成為更好的開發者,而且還成為位元幣社群的優秀力量。
PHP如何開發位元幣詳解
當我們談到位元幣時,其實在不同的場景下有不同的指代。位元幣首先是一種數字加密貨幣,使用者可以通過位元幣網路進行 位元幣轉賬或商品結算,就和傳統的貨幣一樣 不過位元幣是基於密碼學技術的虛擬化貨幣,它沒有實體,僅僅隱含在從傳送方到接收方的交易中,接收方必須使用其持有的金鑰來 消費收到的位元幣。匯智網 事...
位元幣開發專題 萊特幣與位元幣本質上的區別
如果你對萊特幣有些許了解,就應該聽過lee和其他人把它描述成 像位元幣之於 一樣之於 那麼萊特幣與位元幣有哪些不同呢?主要有三大區別 一 區塊生成速度不一樣 位元幣每10分鐘產生乙個區塊,而萊特幣ltc每2.5分鐘產生乙個區塊。這意味著萊特幣具有更快的交易確認效率,位元幣轉賬有時需要1小時甚至更長的...
PHP如何呼叫位元幣錢包的RPC
當我們希望在php開發的 中加入位元幣支付功能時,需要解決的第乙個問題,就是如何在php程式 中呼叫位元幣錢包的rpc api開發介面來實現我們期望的功能,例如位元幣的支付與接收。例如,當我們希望在php 中給某個位元幣位址傳送以太幣時,可以使用sendtoaddress這個rpc介面,可以傳入以下...