譯文出自:登鏈翻譯計劃
譯者:aisiji
校對:Tiny熊
一份幫你入門的資源清單
特別感謝RNG主持了產生本文的談話。RNG是一個由游戲玩家、游戲開發者、區塊鏈開發者、電競愛好者、元老級愛好者、NFT愛好者以及幾乎所有喜歡和這些人混在一起的古怪集體。
最近,有人在論壇上說,希望我為學習區塊鏈的開發者推薦資源,于是我整理了這篇文章。
這不是一篇聊關于區塊鏈優勢和劣勢的文章,只是一篇學習指南而已,給想要學習區塊鏈的人一點幫助,也可以了解到開發區塊鏈應用的步驟。不是所有東西都應該在區塊鏈上。
外面有很多不同的資源,就像任何技術棧的選擇一樣,事情可能會變得很有意見。特別是對于這個領域的新人來說,仍然需要引導到正確的工具。我將嘗試在我的意見和一般清單之間找到一個中間地帶。
其實我們可以找到很多資源,然而就像任何技術棧的選擇一樣,可能會遇到一些比較片面或者有偏見的意見,特別對于這個領域的新人來說,更需要正確的引導。我會努力嘗試選一個比較中立的清單推薦。
你想在哪條鏈上構建?
這其實并不重要--接下來我要聊的是以太坊上的工具和資源。其中有些與其他一些鏈兼容,有些不兼容。我個人認為,如果你是第一次學習區塊鏈應用,學習如何為以太坊編寫和部署可能是最好的開始,即使你的目標是在不同的鏈上構建。因此,這里的列表是以以太坊為重點的。
A警告
以太坊是變化非常快的,你知道三年前React的代碼和現在有多不同嗎?相比React,以太坊的變化要大的多。Solidity的發展速度很快,而且有時候還會出現突破性的變化。隨著EIP不斷的探索更優的定價機制,gas優化也在不斷的變化。伴隨不斷的發現和推廣新的模式,也就不斷的出現新的bug,從而不斷的解bug。今天你看到是這樣的,到明天也許就不是這樣了。即便如此,如果你學會了solidity0.5,你仍然具備理解0.7的能力,不僅如此,會讓0.7變得更容易,而不是更難。
編寫智能合約
giphy.gif
要創建一個dapp,你首先需要具備寫智能合約的能力,并且還要可以讓其他東西與之通信。我先假設那些與合約通信的東西,無論是前端、API、或者其他任何什么,都是用JavaScript編寫的。JS有大量的庫可用,我覺得大多數主流語言都有與Ethereum通信的庫,但是我個人對JS的系統了解的最多。
值得一提的是你可以不用寫合約直接創建一個dapp。在公鏈上,你可以在別人的合約上創建app。你想為Uniswap創建一個前端嗎?Uniswap是不會阻止你的。因為商標的原因,你不能以Uniswap團隊的身份創建前端,但你可以說:“嘿,這是我的Uniswap前端,它可以做Uniswap前端能做的一切,更酷的是,每個月付我5美元你就可以使用它。”這樣是完全沒有問題的。通常,我們假定你至少具備在Ethereum上開發智能合約的一般知識。如果你看不懂合約,那么你很難寫出一個與Uniswap合約的接口。
Solidity是一種智能合約語言,你可以從它開始學習。Vyper是一種超級酷的語言,我還有一個用Vyper寫的PR,但是它不是你的起點。Solidity有更大的社區,這意味著更多的資源,并且當你卡住的時候可以有更多的人可以求助。
韓國慶尚南道將向居民開放基于區塊鏈的綜合補貼運營平臺:韓國慶尚南道21日表示,將向當地居民提供的各種支援金服務轉換為基于區塊鏈的數字服務。基于區塊鏈的綜合補貼運營平臺將服務操作系統從離線轉變為在線,并利用區塊鏈技術引入公平、透明的服務。(韓聯社)[2020/7/21]
Cryptozombies可能仍是嵌入Solidity最好的工具,雖然我覺得它并沒有好好維護。這是一個制作類似Cryptokitties游戲的教程。(有一個游戲制作教程,是Vyper的一個階段工作,點擊這里查看)
我發現,Solidity文檔是非常易讀的,雖然我通常對閱讀文檔有心理障礙。特別是“SoliditybyExample”部分,對于理解Solidity的不同元素非常有幫助。
VisualStudioCode有很好的Solidity工具,據我所知,Atom也有一些不錯的工具。我覺得Vim迫切需要一個新的維護者,我對Emacs不了解,但我肯定它也有一些支持者。
最后:有很多通用的合約,可以直接拿來用,而不需要自己寫。你聽說過制作屬于自己的ERC20代幣或者NFT嗎?你可以直接用一個經過審計的、可靠的、開源的模板,在模板的基礎上創建,而不是從頭開始寫。黃金標準OpenZeppelin,這里是他們的合約庫,他們也有自己的npm包。
智能合約沙盒。
?
Solidity之后,我們要討論的是合約沙盒。假設你已經寫了一個合約,你現在想要測試一下,看看他是否正常工作。你該怎么做呢?沒錯,你不會想要把所有的”Helloworld.“或者草案合約都部署到主網上。雖然有測試網,但一般工作流也不會直接上測試網。取而代之的是開發鏈,這是你可以根據需要在自己機器上運行的虛擬鏈。它可以幫你看到你的合約是否在編譯,并且可以測試合約的函數、變量以確保都按照預期正常工作。不過開發鏈有一些限制——一個簡單的例子,假如你正在開發與DAI交互的程序,這意味著除了部署自己的合約外,每次運行時都會在開發鏈上部署一個克隆Maker(DAI).這是偉大的第一步。
主要工具:
Remix,如果你只處理合約而沒有其他(沒有前端)。Remix也可以連接測試網和主網,是一個非常強大的工具。它會有一個學習曲線,剛開始可能看起來像在胡言亂語,但是一旦你掌握了編譯和部署,你就可以用它做很多事。
Ganache,和Hardhat--我們將在一分鐘內詳細討論這兩個框架。它們是更大的框架的一部分,可以單獨用于合約,但當你有一個完整的應用程序時又會大放光彩。
總結一下,傳統的合約部署包含以下步驟。首先,合約需要被編譯,從Solidity(或其他語言)轉化為JSON串。你會注意到一種特別的JSON——ABI,這是合約內容概要的JSON,這種JSON多被應用于開發中。然后到實際的部署了,需要通過一個交易把合約字節碼發送到鏈上。為了可以與合約交互,你還需要知道它在鏈上的地址,并且你還需要它的ABI。Etherscan是一個從鏈上讀取合約信息的非常有用的工具。假如你知道合約地址,但是不知道它的ABI,通常都可以在Etherscan找到。
框架
?
這給我們帶來了圍繞合約制作一個用戶界面的問題。一旦你部署了,你的合約將如何被交互?在某些情況下,僅僅在鏈上有一個合約就足夠了,任何參與互動的人都可以使用類似Remix的東西來與之互動,但通常不會。我首先假設你的項目中有某種圖形用戶界面。如果是這種情況,你會想要一個框架。區塊鏈框架將把你的合約整合到前端項目中,把你的合約編譯成可以被前端理解的JSON,提供旋轉開發鏈的能力,以及部署合約。
動態 | 歐洲足聯將通過基于區塊鏈的應用程序分發足球比賽門票:歐洲足球協會聯盟(UEFA)將通過基于區塊鏈的移動應用程序分發超過一百萬張的足球比賽門票。該組織聲稱,這種新的票務系統將使用戶“順利、安全、可靠地進入體育場”。該應用程序將于5月底可供安卓和iOS設備下載。(Cointelegraph)[2020/2/17]
最流行的框架是。許多教授dApp開發的在線資源也教授Truffle。Truffle可以編譯,以Ganache的形式公開開發鏈工具,以及更多。
既然如此,我推薦。與Truffle類似,你可以編譯合約,并獲得對開發鏈的訪問。不過,還有更多。Solidity沒有開箱即用的console.log,但Hardhat基本上做了他們自己的黑客EVM,可以讓你登錄你的合約。根據我的個人經驗,Hardhat的編譯問題也比較少。(看著你,node-gyp。)也有更多的便利設施。在你去嘗試建立你自己的Hardhat環境之前,讓我們來談談web3庫,然后我有一個建議,這應該會使你更容易。
web3庫是在非區塊鏈代碼和區塊鏈之間搭建橋梁的半官方術語。用于實例化合約對象的JavaScript代碼在哪里,然后在該合約上調用一個函數?實際上,你到底用什么函數來連接到鏈上?很明顯,JS沒有內置這個功能。這就是web3庫的作用。它們暴露了所有你需要做的事情的函數。JavaScript中最突出的兩個庫是Web3.js17和Ethers.js。我個人認為后者更容易操作,并建議你也這樣做。一個建議是,目前的Ethers的文檔仍在編寫中。如果你在查找或理解v5的文檔時遇到困難,也可以搜索。搜索的功能更強大,而且有更多的代碼片段)。)
我不知道有什么資源能真正放大到web3庫的熟練程度,但我在最后給出的建議也涵蓋了web3。
你需要合約、框架環境和web3庫,這已經是很多了。如果有什么能把這些整合到一個環境中來管理它們,那不是很好嗎?
一個管理它們的環境
自然是有的。Scaffold-Eth有一個開箱即用的環境,在React應用的背景下設置了Hardhat和一大堆其他東西。Web3.js和Ethers都是通過同一個yarn安裝來安裝其他的依賴項。這是迄今為止最簡單的入門方式,因為它幾乎沒有任何配置。Scaffold里有很多東西,包括自定義鉤子和組件。甚至還有一個自定義合約組件,為你提供了與合約交互的近乎無障礙的方式,這與Remix非常相似。編譯完合約后,只需在App.jsx中放入一個<合約名稱="YourContract/>組件,其中名稱是合約的名稱。AustinGriffith在Scaffold的舊版本上有一個三分鐘的超級超級模式的演練here,還有一個更長的演練here。
圍繞它還有一個超級友好的Telegram頻道,在GitHub的README中列出。我強烈推薦它。這就像在Webpack和Babel中掙扎的人與Create-React-App的區別。
我想談的最后一件事是區塊鏈棧中的另一個細節。區塊鏈是一個由節點組成的網絡,每個節點都存儲著區塊鏈的歷史。你的React應用是如何接入網絡的?雖然web3庫確實暴露了一個web3提供者,但它如何知道節點的位置,以及如何查詢它們?答案是,它不知道。你需要運行你自己的節點,或者連接到一個運行它們的服務。這就是最終完成的橋梁--你的JavaScript使用web3庫來發送一個鏈上理解的命令,該命令通過web3提供者發送到網絡,然后,viola,你在與區塊鏈對話。
動態 | 銀之杰:公司區塊鏈收入較低 因該技術尚在能力儲備的階段:銀之杰(300085.SZ)在深交所-互動易平臺上回答投資者提問時表示,從營業收入的角度來看,公司的區塊鏈收入較低是因為區塊鏈的確是公司尚在技術和解決方案能力儲備的階段,市場有待進一步開發。[2020/1/9]
區塊鏈節點
雖然我推薦運行自己的節點,甚至還寫了一篇長文關于安裝Geth,我不得不承認使用服務是更普遍的做法。我會折中一下,給你一些關于兩者的信息。出于各種原因,我推薦Nethermind來運行你自己的節點。為了能夠做到這一點,你需要一個固態硬盤,它應該有至少500GB的空間。你可以用4GB內存進行同步,但可能至少要有8GB。這些都是為主網計算的,測試網需要的空間要小得多,而且可能用更少的內存就能搞定。如果你還在做高強度的圖形工作,你可能已經有了更多的內存,你可以很容易地調整Nethermind使用多少內存。Nethermind是用.NET寫的,但我在*nix系統上沒有遇到任何問題。在服務方面,Infura是最著名和最廣泛使用的,盡管新來的Alchemy也值得好好看看。
我把這個推到這里,之前沒有提到的原因之一是,它有點不倫不類。就你的實際開發而言,無論你是否運行你自己的節點或使用服務,當你實例化一個web3對象并需要知道將其連接到什么時,對你的代碼庫的實際影響大約是半行。
錢包
同樣,你可能要在你的瀏覽器上安裝MetaMask來測試錢包的交互。你也可以使用其他錢包,但在我看來,MetaMask仍然是國王。
接下來的事情
一旦你掌握了這些基本知識,你會很快遇到一籃子新的問題和關注。我不可能在這里涵蓋所有的問題,我自己并不了解所有的問題,也沒有足夠的知識來明智地解決其他問題,但我會試著談一談接下來你可能要關注的一些事情。
分散的文件存儲
對區塊鏈的寫入是昂貴的。你要為你在鏈上寫入或更改的每一點信息付出代價。不僅如此,每一個與鏈同步的節點都必須在同步時執行你放在鏈上的東西。這使得代碼有了一些有趣的優化,但它也讓你思考什么應該放在鏈上。鏈的作用很差,就是數據存儲。
比方說,你有一個有用戶檔案的平臺。你不希望在鏈上存儲他們的簡歷和頭像。那它應該放在哪里?一些集中的服務器?(Cueoverlydramaticmusic:)如果惡意的一方可以任意改變用戶的頭像,那么整個平臺去中心化的意義何在!?別擔心,仍然有去中心化的方式來存儲數據。去中心化的文件存儲也依賴于去中心化的點對點網絡,就像區塊鏈。(現在的一些人還與他們自己的區塊鏈溝通,但這既不是這里也不是那里)。不過,他們專門拿數據來存儲。現在它們中最引人注目的是Filecoin,盡管我個人也會提到Swarm和Sia。Swarm尤其如此。不同的供應商可能有不同的優勢,這取決于你需要存儲什么樣的數據,你需要什么樣的功能,等等。
Layer2解決方案
以太坊本身已經到了交易成本過高,或開采時間過長的地步了。此外,在主網上,隱私可能是一個困難的冒險。Layer2的解決方案已經被開發出來,以緩解擁堵問題,有些還提供了更強大的隱私保證。我們正處于一個百家爭鳴的L2s階段。有大量的看起來強大的、可用于市場的解決方案。Reddit希望有一個L2來投放一些平臺內的貨幣,并收到了20多份材料。我無法比較和對比現有的平臺--我缺乏信息和知識。如果你想讓我挑出一個來先看看,我會推薦StarWare的Cairo或用它構建的東西。
聲音 | 中國銀行前行長:區塊鏈等技術的深度融合將建立新的數字信任機制:在10月27日北京通州舉辦的“2019全球財富管理論壇”上,中國銀行前行長、中國互聯網金融協會區塊鏈工作組組長、第十二屆全國人大財經委員李禮輝表示,大數據、區塊鏈等技術將提供分布式、低成本、可認證的技術平臺,建立數字信任機制。區塊鏈與人工智能技術的深度融合正在建設新的數字信任機制,提高財富管理金融的效率。(億歐金融)[2019/10/27]
預言機
有時你想根據鏈外發生的事情在鏈上做一些事情。比方說,如果以太幣的美元價值超過一定數額,你就想賣掉它。美元不在鏈上,那么區塊鏈怎么會知道呢?你可以寫一個機器人來調查價格,并在滿足條件的情況下執行交易,但假設你需要在智能合約中擁有這些信息--合約應該如何知道?這就是預言機所要解決的問題。
不幸的是,那些看起來很簡單的解決方案不一定是充分的。Samczsun,一個相當傳奇的以太坊白帽子,最近放出一篇文章關于預言機攻擊。其結果是要小心你在那里做的事情。
也有預言機服務。Chainlink幾乎可以肯定是其中最有名的,但要確保它能滿足你的需要。Samczsun在他的文章中對這個問題的論述比我可能的要好,所以我就把你引到那里。
終于有了一個類似結論的東西
我們在這里還可以談一談:鏈上治理,可升級性,安全性,以及更多。正如你所知道的,我主要是通過主觀的方式來挑選主題。這篇文章絕不是詳盡無遺的,盡管我認為它可以給一個置身事外的開發者提供良好的方向。隨著你越來越熟練,你將能夠輕松地找到自己的方向。以太坊社區的一個重要方面是它的許多人都很友好。好好利用,但也要把它發揚光大。總有一天,會有另一個開發人員試圖摸索這些奇怪的區塊鏈東西,也許你會是那個在Twitter上收到他們的DM或在EthereumStackExchange上看到他們的問題的人。有了強大的以太坊,就有了保持以太坊強大的責任,或類似的東西。
資源清單
我將在這里放上一堆資源,包括上面提到的那些,以及一些教程。
首先,我應該鏈接到更全面的資源。我的目標是列出足夠多的資源,以滿足初學者的需要,但又不至于多到讓人不知所措。這里有許多我將探討的資源。ConsenSys保留了一個資源清單這里,它被鏈接到/r/ethdev的這個主題中,這意味著那里的評論甚至有更多。我也要向ethereum.org喊話,因為他們有一個非常棒的開發門戶,他們正在不斷努力改進。
核心資源
Soliditydocs
Vyperdocs
Remix
Contraktor
Eth95
OpenZeppelin(GitHub,npm)
Truffle
Hardhat
Web3.js
Ethers
Scaffold-Eth
Nethermind
Infura
Alchemy
教程
EattheBlocks
Dapp大學
過去有很好的Udemy課程,不知道現在是否有什么。
社科院專家:十年來區塊鏈技術沒有大差異:日前,中國社科院金融研究所支付清算研究中心特約研究員趙鷂受訪時指出,不管是縱向上來看,從十年前區塊鏈技術出現到今天,還是橫向上來看,目前市場上相關企業掌握的區塊鏈技術,都沒有太大的變化和差異,區塊鏈應用需要解決的是基礎理論上的問題,這是政府部門、科研機構牽頭承擔的任務。[2018/3/14]
Ethernaut-我推薦使用NicoleZhu的excellentwalkthroughs
Cryptozombies
vyper.fun
資源
ethereum.org
StackExchange
/r/ethereum
/r/ethdev
Twitter-它確實是一個了不起的地方,可以看到正在發生的事情,與社區成員聯系,并建立對性的抵抗,你可以使用hive.one獲得一個良好的開端。
WeekInEthereum
眾多的播客,我甚至不打算去嘗試
EthGlobal在2020年的虛擬黑客大會上做得非常好,這是一個與其他以太坊開發者會面和互動的好方法,尤其是當你在自學時。
這次真的要結束了
5fbd1ab05d0fa2a2570a3d1b_conclusion
唷!這是個很長的清單。我希望這是一個很好的概述,足以讓你開始并走上你的道路。你很快就會找到你自己的道路。
本翻譯由CellETF贊助支持。
來源:https://www.linumlabs.com/articles/a-guide-for-developers-interested-in-learning-blockchain-development
參考資料
登鏈翻譯計劃:https://github.com/lbc-team/Pioneer
aisiji:https://learnblockchain.cn/people/3291
Tiny熊:https://learnblockchain.cn/people/15
RNG:http://discord.gg/rnglife
Cryptozombies:https://cryptozombies.io
這里:https://vyper.fun
Solidity文檔:https://learnblockchain.cn/docs/solidity/
OpenZeppelin:https://openzeppelin.com/
這里:https://github.com/OpenZeppelin/openzeppelin-contracts
npm包:https://www.npmjs.com/package/@openzeppelin/contracts
Remix:https://remix.ethereum.org
Ganache:https://www.trufflesuite.com/ganache
Truffle:https://learnblockchain.cn/docs/truffle/
Hardhat:https://hardhat.org/
NomicLabs:https://nomiclabs.io/
Etherscan:https://learnblockchain.cn/docs/etherscan/
Web3.js:https://learnblockchain.cn/docs/web3.js/
Ethers.js:https://learnblockchain.cn/docs/ethers.js/
Scaffold-Eth:https://github.com/austintgriffith/scaffold-eth
here:https://youtu.be/ShJZf5lsXiM
here:https://youtu.be/_yRX8Qi75OE
一篇長文:https://betterprogramming.pub/run-an-ethereum-node-on-linux-late-2019-b37a1d35800e
Nethermind:https://www.nethermind.io/
Infura:https://infura.io
Alchemy:https://alchemyapi.io
MetaMask:https://metamask.io
Swarm:https://swarm.ethereum.org/
收到了20多份材料:https://www.reddit.com/r/ethereum/comments/hbjx25/the_great_reddit_scaling_bakeoff/
StarWare:https://www.reddit.com/r/ethereum/comments/hbjx25/the_great_reddit_scaling_bakeoff/
放出一篇文章:https://samczsun.com/so-you-want-to-use-a-price-oracle/
Chainlink:https://starkware.co
這里:https://github.com/ConsenSys/ethereum-developer-tools-list/blob/master/README.md
這個:https://www.reddit.com/r/ethdev/comments/9jw839/long_list_of_ethereum_developer_tools_frameworks/
ethereum.org:https://ethereum.org
Soliditydocs:https://learnblockchain.cn/docs/solidity/
Vyperdocs:https://vyper.readthedocs.io/en/stable/
Remix:https://vyper.readthedocs.io/en/stable/
Contraktor:https://ethcontract.watch/
Eth95:https://eth95.dev/
OpenZeppelin:https://openzeppelin.com/
GitHub:https://github.com/OpenZeppelin/openzeppelin-contracts
npm:https://www.npmjs.com/package/@openzeppelin/contracts
Truffle:https://learnblockchain.cn/docs/truffle/
Hardhat:https://learnblockchain.cn/docs/hardhat/getting-started/
Web3.js:https://learnblockchain.cn/docs/web3.js/
Ethers:https://docs.ethers.io/v5/
Scaffold-Eth:https://github.com/austintgriffith/scaffold-eth
Nethermind:https://nethermind.io/client
Infura:https://infura.io/
Alchemy:https://infura.io/
EattheBlocks:https://www.youtube.com/channel/UCZM8XQjNOyG2ElPpEUtNasA
Dapp大學:https://www.youtube.com/channel/UCY0xL8V6NzzFcwzHCgB8orQ
Ethernaut:https://ethernaut.openzeppelin.com
excellentwalkthroughs:https://hackernoon.com/ethernaut-lvl-1-walkthrough-how-to-abuse-the-fallback-function-118057b68b56
Cryptozombies:https://cryptozombies.io
vyper.fun:https://cryptozombies.io
ethereum.org:https://vyper.fun
StackExchange:https://ethereum.stackexchange.com/
/r/ethereum:https://www.reddit.com/r/ethereum/
/r/ethdev:https://www.reddit.com/r/ethdev/
hive.one:https://hive.one/ethereum/people
WeekInEthereum:https://weekinethereumnews.com/
EthGlobal:https://ethglobal.co/
CellETF:https://celletf.io/?utm_souce=learnblockchain
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
登鏈社區
現已在非小號資訊平臺發布105篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/10353609.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
每周編輯精選WeeklyEditors'Picks
Tags:ETHHTTTPSTHEEthereal直譯CHTT價格tps幣圈1X Short Ethereum Token
今日,CEL、GRAP、EDG已正式上線USDT、ETH交易池,OIN已正式上線USDT交易池,并開啟新版流動性礦池獎勵.
1900/1/1 0:00:00尊敬的EXX用戶: ???EXX將于香港時間2021年2月20日12:00開啟SPC一U奪幣玩法,1個USDT贏取1000個SPC,參加人次越多.
1900/1/1 0:00:00美國證監會SEC與加密領域的對話更加頻繁了,最先接收到監管加強信號的是中心化交易所。就在今日,在外媒報道中,美國已經擴大針對交易平臺幣安的調查范圍,當局現在正在審查可能存在的內幕交易和市場操縱.
1900/1/1 0:00:00尊敬的用戶: HuobiGlobal將于新加坡時間9月18日16:00開放SPA(Sperax)的充值業務,SPA?(Sperax)原上線計劃詳情.
1900/1/1 0:00:00親愛的KuCoin用戶,KuCoin交易機器人上線以來,不斷升級迭代,新增了多種策略與功能!為感恩老用戶一路上的陪伴與支持.
1900/1/1 0:00:00Gate.io第八期云算力產品將于今日上線,靜態年化收益高達70%。無需購買礦機,您就可以通過挖礦獲得數字貨幣.
1900/1/1 0:00:00