區塊鏈開發指南
by Haseeb Qureshi
由Haseeb Qureshi
區塊鏈開發權威指南 (The authoritative guide to blockchain development)
Cryptocurrencies, ICOs, magic internet money — it’s all so damn exciting, and you, the eager developer, want to get in on the madness. Where do you start?
加密貨幣,ICO,神奇的互聯網貨幣-真是太令人興奮了,而您,熱情的開發人員,也想抓狂。 從哪里開始?
I’m glad you’re excited about this space. I am too. But you’ll probably find it’s unclear where to begin. Blockchain is moving at breakneck speed, but there’s no clear onramp to learning this stuff.
我很高興您對這個空間感到興奮。 我也是。 但是您可能會發現不清楚從哪里開始。 區塊鏈正以驚人的速度發展,但是學習這些東西并沒有明顯的障礙。
Since I left Airbnb to work full-time on blockchain, many people have reached out to me asking how to get into the blockchain space full-time. Consider this my authoritative (and inevitably incomplete) guide on how to get into blockchain engineering.
自從我離開Airbnb從事區塊鏈全職工作以來,許多人聯系我,詢問如何全職進入區塊鏈領域。 考慮一下這本關于如何進入區塊鏈工程的權威(不可避免地是不完整的)指南。
This guide will proceed in ten parts:
本指南將分十部分進行:
Why should you learn blockchain development?
為什么要學習區塊鏈開發?
Prerequisites
先決條件
The theoretical foundations of Bitcoin
比特幣的理論基礎
Building a blockchain yourself
自己建立區塊鏈
Ethereum and smart contract programming
以太坊和智能合約編程
Smart contract security
智能合約安全
Taking off the training wheels
卸下訓練輪
Building your own projects
建立自己的項目
Navigating the blockchain community
導航區塊鏈社區
Getting a job
得到一份工作
為什么要學習區塊鏈開發? (Why should you learn blockchain development?)
Before I answer that question, let me first note: blockchain is a massively overvalued space right now. These prices are unsustainable, and a crash is definitely coming. This has all happened before, and will probably happen again. But if you work long-term in this space, you’ll learn to shrug off prices. In the words of Emin Gun Sirer — prices are the least interesting part of cryptocurrencies. These are massively important technologies, and they are going to irrevocably change the world.
在回答這個問題之前,我首先要指出:區塊鏈現在是一個被嚴重高估的空間。 這些價格是不可持續的,并且肯定會崩潰。 這一切以前都曾經發生過,并且可能會再次發生。 但是,如果您在這個領域長期工作,您將學會擺脫價格。 用Emin Gun Sirer的話來說-價格是加密貨幣中最不有趣的部分。 這些是非常重要的技術,它們將不可改變地改變世界。
If you’re unsure, I can’t tell you whether or not you should jump in. But I can tell you five reasons that convinced me to take the leap:
如果您不確定,我不會告訴您是否應該加入。但是我可以告訴您五個說服我邁出這一步的理由:
It’s still early.
還早。
Bitcoin was invented 10 years ago, but the rate of innovation has only reached a fever pitch in the last couple of years, especially with the launch of Ethereum in 2015. Most of the new companies and ideas in this space have been built on top of Ethereum, which is still very immature.
比特幣是10年前發明的,但是在過去的幾年中,創新的速度才達到頂峰,尤其是在2015年推出以太坊時。這一領域的大多數新公司和創意都建立在以太坊,還很不成熟。
Even if you start now, you can realistically become a world-class expert within a few years. Most people just haven’t been doing this that long, and it won’t be that hard to catch up. Starting now would be analogous to deep learning experts who began studying the topic in the late 2000s.
即使您現在就開始,您也可以在幾年內成為世界一流的專家。 大多數人只是沒有花那么長時間,而且趕上它并不難。 從現在開始類似于在2000年代末開始研究該主題的深度學習專家。
2. This space doesn’t have a strong talent funnel yet.
2. 這個空間還沒有強大的人才渠道。
Most of the best and brightest students at universities are focusing on machine learning, web programming, or game development. Sure, blockchains are getting more sexy in the public discourse, but they’re still a weird and subversive topic on which to stake your career.
大學中大多數最優秀和最聰明的學生都將注意力放在機器學習,Web編程或游戲開發上。 當然,區塊鏈在公眾討論中正變得越來越性感,但是它們仍然是一個奇怪而具有顛覆性的話題,可以與您的職業相關。
Early on, blockchain was exclusively the realm of cypherpunks, paranoids, and weirdos. That’s only recently begun to change. Just by being a curious and open-minded developer, you’ll bring a lot of value to the space.
早期,區塊鏈僅是密碼,偏執狂和怪人的領域。 這只是最近才開始改變。 僅僅通過成為一個好奇和豁達的開發人員,您將為這個空間帶來很多價值。
3. Much of the innovation is happening outside of academia.
3.許多創新發生在學術界之外。
Satoshi Nakamoto was not an academic as far as we know. There’s no university or institution that offers a coherent blockchain concentration yet. Most of the innovation here has been led by aficionados, entrepreneurs, and independent researchers. Almost everything you need to know is in white papers, blog posts, public Slack channels, and open-source software. All it takes is rolling up your sleeves and jumping into the fray.
據我們所知,中本聰不是一位學者。 尚無大學或機構提供一致的區塊鏈集中度。 這里的大多數創新都是由愛好者,企業家和獨立研究人員領導的。 您需要了解的幾乎所有內容都在白皮書,博客文章,公共Slack頻道和開源軟件中。 它所要做的就是卷起袖子,跳入戰斗。
4. The demand for talent far, far exceeds supply.
4.對人才的需求遠遠超過了供給。
There just aren’t enough developers in this space, and they can’t get trained fast enough. Everyone is competing to hire blockchain talent, and projects are feeling the talent crunch. Many of the best companies can’t pay their people enough to stay because they have too many opportunities. If you get some skills under your belt, it’ll be easy to land a job.
在這個領域中,沒有足夠的開發人員,而且他們的培訓速度不夠??快。 每個人都在競爭聘用區塊鏈人才,項目感到人才緊縮。 許多最好的公司不能給他們的員工足夠的薪水,因為他們擁有太多的機會。 如果您掌握了一些技能,就很容易找到工作。
5. Cryptocurrencies are just really damn cool.
5.加密貨幣真是太酷了。
Where else can you build sci-fi stuff like cryptographically secured, decentralized money? It’s the wild west right now—and this brings good and bad. The space could use more transparency, and regulation will eventually come. But without a doubt, cryptocurrencies are one of the most innovative areas you can be working in right now.
您還可以在其他地方建立科幻小說之類的東西,例如加密安全的分散資金? 現在是狂野的西部-帶來好與壞。 這個空間可能會使用更多的透明度,并且最終將出現管制。 但毫無疑問,加密貨幣是您現在可以從事的最具創新性的領域之一。
Naval Ravikant said in a recent interview: the key to success is to give society things that it wants, but doesn’t know how to get on its own. You can’t go to school for such things; if you could, the world would already have a steady supply of it.
海軍部長拉維坎特(Naval Ravikant) 在最近的一次采訪中說 :成功的關鍵是為社會提供它想要的東西,但不知道如何獨立發展。 你不能因為這些事情而去學校。 如果可以的話,世界將已經有穩定的供應。
So build something no one else knows how to build. Right now, blockchains are brand new and there’s so much left to figure out. If you succeed in building the future of decentralized technology, the world will reward you handsomely.
因此,構建任何其他人都不知道如何構建的東西。 現在,區塊鏈是全新的,還有很多需要解決。 如果您成功構建了去中心化技術的未來,那么世界將為您帶來豐厚的回報。
So say you want to throw in your hat. What do you need to know before you get into the ring?
所以說你想戴上帽子。 在進入電話圈之前,您需要了解什么?
先決條件 (Prerequisites)
I’d recommend strengthening up your understanding of fundamentals before you dive further. Blockchains are built atop decades of research in computer science, cryptography, and economics. Satoshi Nakamoto was a renegade, but he also knew well the history that preceded him. In order to understand why blockchains work, you need to understand their building blocks — what came before blockchains, and why those things didn’t work.
我建議您在進一步潛水之前加深對基本原理的理解。 區塊鏈是建立在數十年的計算機科學,密碼學和經濟學研究之上的。 中本聰是個叛徒,但他也很了解他之前的歷史。 為了了解區塊鏈為什么起作用,您需要了解它們的構件-區塊鏈之前發生的事情以及這些事情為什么不起作用。
Here are some good prerequisites to be familiar with, in order of importance.
按照重要性的順序,這里是一些熟悉的先決條件。
Note, these links are just a starting point, you’ll probably want to dive deeper for many of these topics.
請注意,這些鏈接只是一個起點,您可能需要更深入地研究這些主題。
計算機科學 (Computer science)
數據結構 (Data structures)
You’ll want to be familiar with the characteristics and complexity guarantees of the major data structures: linked lists, binary search trees, hash maps, and graphs (specifically, directed acyclic graphs which feature prominently in blockchains). It helps to have built them from scratch to better understand how they work and their properties.
您需要熟悉主要數據結構的特性和復雜性保證: 鏈表 , 二進制搜索樹 , 哈希圖和圖 (特別是有向無環圖 ,在區塊鏈中占主導地位)。 從頭開始構建它們有助于更好地了解它們的工作方式和屬性。
密碼學 (Cryptography)
Cryptography is the namesake and bedrock of cryptocurrencies. All cryptocurrencies use public/private key cryptography as the basis for identity and authentication. I’d recommend studying RSA (it’s easy to learn, and doesn’t require a very strong math background), then look at ECDSA. Elliptic curve cryptography requires significantly more abstract math — it’s not important to understand all the details, but know that this is the cryptography that’s used in most cryptocurrencies, including Bitcoin.
密碼學是加密貨幣的代名詞和基石。 所有加密貨幣都使用公共/專用密鑰加密作為身份和身份驗證的基礎。 我建議您學習RSA (這很容易學習,并且不需要很強的數學背景),然后再看ECDSA 。 橢圓曲線密碼學需要更多的抽象數學知識-了解所有細節并不重要,但要知道這是大多數加密貨幣(包括比特幣)中使用的密碼學。
The other important cryptographic primitive is the cryptographic hash function. These can be used to construct commitment schemes, and are the building block for Merkle trees. Merkle trees enable Merkle proofs, one of the key optimizations that blockchains use for scalability.
另一個重要的密碼原語是密碼哈希函數 。 這些可以用來構建承諾方案 ,并且是Merkle樹的構建塊。 Merkle樹啟用Merkle證明 , Merkle證明是區塊鏈用于可伸縮性的關鍵優化之一。
分布式系統 (Distributed systems)
There are a few good textbooks on distributed systems, but it’s a sprawling and difficult area of study. Distributed systems are absolutely essential to reasoning about blockchains, so you must build a foundation here before tackling blockchain programming.
關于分布式系統,有一些不錯的教科書 ,但這是一個龐大且困難的學習領域。 分布式系統對于推理區塊鏈絕對必不可少,因此在進行區塊鏈編程之前,您必須在此處建立基礎。
Once you’re no longer living on a single machine, you have to start reasoning about consistency and consensus. You’ll want to know the difference between linearizable and eventual consistency models. You’ll also want to learn the guarantees of fault-tolerant consensus algorithms, such as Paxos and RAFT. Know the difficulties of reasoning about time in a distributed system. Appreciate the tradeoffs between safety and liveness.
一旦您不再生活在一臺機器上,就必須開始進行有關一致性和共識性的推理。 您將要知道線性化模型和最終一致性模型之間的區別。 您還將需要學習諸如Paxos和RAFT之類的容錯共識算法的保證。 了解分布式系統中時間推理的困難 。 理解安全性和活力之間的權衡。
With that background, you’ll be able to understand the difficulties around Byzantine fault-tolerant consensus, the primary security requirement of public blockchains. You’ll want to learn about PBFT, one of the first scalable algorithms to deliver Byzantine fault-tolerant consensus. PBFT is the basis for many non-proof-of-work blockchain consensus algorithms. Once again, you don’t need to understand the details of how and why PBFT is correct, but get the general idea and its security guarantees.
在這樣的背景下,您將能夠理解圍繞拜占庭容錯共識 (公共區塊鏈的主要安全要求)所遇到的困難。 您將要了解PBFT ,它是首批提供拜占庭容錯共識的可擴展算法之一。 PBFT是許多非工作量證明區塊鏈共識算法的基礎。 再一次,您不需要了解PBFT如何正確以及為什么正確的細節,而是獲得了總體思路及其安全性保證。
It’s also very useful to understand the traditional methods of distributing databases (at its core, blockchains are databases after all). Learn about sharding (such as via consistent hashing), leader-follower replication, and quorum-based commits. Look into distributed hash tables (DHTs), such as Chord or Kademlia.
了解分布數據庫的傳統方法也非常有用(從根本上講,區塊鏈畢竟是數據庫)。 了解分片 (例如,通過一致性哈希 ), 領導者跟隨者復制和基于仲裁的提交 。 查看分布式哈希表(DHT) ,例如Chord或Kademlia 。
聯網 (Networking)
The decentralization of blockchains derives in large part from their peer-to-peer network topology. As such, blockchains are direct descendants of the past P2P networks.
區塊鏈的去中心化很大程度上源于其對等網絡拓撲。 因此,區塊鏈是過去P2P網絡的直接后代。
To understand the blockchain communication model, you need to understand the basics of computer networking: this means understanding TCP vs UDP, the packet model, what IP packets look like, and roughly how Internet routing works.
要了解區塊鏈通信模型,您需要了解計算機網絡的基礎知識:這意味著了解TCP與UDP , 數據包模型,IP數據包的外觀以及Internet路由的大致工作方式。
Public blockchains tend to spread messages via gossip protocols using flooding. It’s instructive to learn the history of P2P network design, from Napster to Gnutella, BitTorrent and Tor. Blockchains have their own place, but they draw upon the lessons of these networks and how they were designed.
公共區塊鏈傾向于使用洪泛通過八卦協議傳播消息。 了解從Napster到Gnutella , BitTorrent和Tor的P2P網絡設計的歷史是很有啟發性的。 區塊鏈有其自己的位置,但它們借鑒了這些網絡的經驗教訓以及它們的設計方式。
經濟學 (Economics)
Cryptocurrencies are inherently multidisciplinary — this is part of what makes them so fascinating and radical. Besides computer science, cryptography, and networking, they are also deeply interwoven with economics. Cryptocurrencies can derive many security properties through their economic structures, which is often termed cryptoeconomics. As such, economics is essential to understanding cryptocurrencies.
加密貨幣本質上是多學科的,這是使其變得如此迷人和激進的原因之一。 除了計算機科學,密碼學和網絡,它們還與經濟學緊密地交織在一起。 加密貨幣可以通過其經濟結構獲得許多安全屬性,通常被稱為加密經濟學 。 因此,經濟學對于理解加密貨幣至關重要。
博弈論 (Game theory)
The most important branch of economics that plays into cryptocurrencies is game theory, the study of payoffs and incentives among multiple agents. You don’t need to go extremely deep here, but you do need to understand the basic tools of game theoretic analysis and how you can use them to analyze incentives in one-shot and iterated games.
參與加密貨幣的經濟學最重要的分支是博弈論 ,即對多主體之間收益和激勵的研究。 你不需要去極深這里,但你需要了解博弈論分析的基本工具,以及如何使用它們來分析一次性獎勵和迭代游戲。
Two key concepts in your repertoire should be Nash equilibria and Schelling points, as they feature prominently in cryptoeconomic analysis.
清單中的兩個關鍵概念應該是Nash均衡和Schelling點 ,因為它們在加密經濟分析中非常重要。
宏觀經濟學 (Macroeconomics)
Cryptocurrencies are not just protocols, they are also forms of money. As such, they respond to the laws of macroeconomics (if they can be called laws). Cryptocurrencies are subject to different monetary policies, and respond predictably to inflation and deflation. You should understand these processes and the effects they have on spending, saving, etc.
加密貨幣不僅是協議,而且還是貨幣形式。 因此,它們響應宏觀經濟學的法則(如果可以將其稱為法則)。 加密貨幣受制于不同的貨幣政策 ,并且可以預料地應對通貨膨脹和通貨緊縮 。 您應該了解這些過程及其對支出,儲蓄等的影響。
Another valuable economic concept is the velocity of money, especially as it corresponds to valuing a currency.
另一個有價值的經濟概念是貨幣的流動性 ,尤其是它對應于對貨幣進行估值時。
微觀經濟學 (Microeconomics)
Cryptocurrencies are also deeply interwoven with markets, which requires an understanding of microeconomics. You’ll need a strong intuition for supply and demand curves. You should be able to reason about competition and opportunity costs (they’ll apply frequently to cryptocurrency mining). For many coin distributions and cryptoeconomic systems, auction theory features prominently.
加密貨幣也與市場緊密地交織在一起,這需要對微觀經濟學的理解。 您需要對供需曲線有很強的直覺。 您應該能夠推斷出競爭和機會成本 (它們會經常應用于加密貨幣挖礦)。 對于許多硬幣發行和加密經濟系統, 拍賣理論具有突出的特征。
I expect you’ll be familiar with some of these topics already. If you are, feel free to skim or skip over them entirely.
我希望您已經熟悉其中一些主題。 如果您愿意,可以隨意瀏覽或完全跳過它們。
Okay, by now you’ve gone through and shored up your fundamentals (or maybe you skipped a bunch, who’s counting?), so now that you’ve got your theory in check, let’s get started on blockchain development.
好的,到目前為止,您已經遍歷并鞏固了基礎知識(或者您跳過了一堆,誰在指望?),所以現在您已經掌握了理論,讓我們開始進行區塊鏈開發。
比特幣的理論基礎 (The Theoretical Foundations of Bitcoin)
In October of 2008, Satoshi Nakamoto published a white paper in which he described a protocol for a decentralized digital currency. He called this protocol Bitcoin.
2008年10月,中本聰(Satoshi Nakamoto)發表了一份白皮書,其中他描述了一種去中心化數字貨幣的協議。 他稱該協議為比特幣。
Before you can understand the big ideas behind blockchains, you have to start with Bitcoin and grasp Satoshi’s original insight.
在您了解區塊鏈背后的大創意之前,您必須從比特幣開始,并掌握Satoshi的原始見解。
First, I recommend building your intuitions about proof-of-work and the fork choice rule (also known as Nakamoto consensus). Start here:
首先,我建議您建立關于工作量證明和分叉選擇規則(也稱為Nakamoto共識)的直覺。 從這里開始:
I recommend watching more than one video explanation to get the idea seared into your head:
我建議觀看不止一個視頻說明,以使您的想法浮出水面:
Great. Now that you’ve built up your intuition, this article will provide a deeper end-to-end exposition of the critical components of how Bitcoin works.
大。 現在您已經建立了自己的直覺, 本文將提供有關比特幣工作原理的重要組成部分的更深入的端到端說明。
自己建立區塊鏈 (Building a blockchain yourself)
Now that you have the high-level intuition, it’s time to build your own proof-of-work based blockchain. Don’t worry, it’s easier than it sounds. Here are some good resources.
現在,您已經有了高級的直覺,現在該構建自己的基于工作量證明的區塊鏈了。 別擔心,這比聽起來容易。 這里有一些很好的資源。
First, I have a video lecture where I walk through exactly how to do this in Ruby (I recommend watching even if you’re not a Ruby programmer):
首先,我有一個視頻講座,其中我將詳細介紹如何在Ruby中執行此操作(即使您不是Ruby程序員,我也建議您觀看):
Source and slides here.
來源和幻燈片在這里。
There are also other blockchain implementations you can find, written in various programming languages. Go on and build your own, and satisfy yourself that it’s mostly functional.
您還可以找到其他用各種編程語言編寫的區塊鏈實現 。 繼續構建您自己的,并讓您滿意,它基本上可以正常工作。
Once you’ve made it this far, you should have a good grasp of how to implement a simple payments application atop a blockchain (i.e., Bitcoin). You should also by now have enough background that you should be able to read and understand the original Bitcoin whitepaper.
一旦到此為止,您應該對如何在區塊鏈(即比特幣)上實現簡單的支付應用程序有一個很好的了解。 現在,您還應該具有足夠的背景知識,以便能夠閱讀和理解原始的比特幣白皮書 。
To understand the economics and mechanics of Bitcoin mining, I recommend watching the lecture on Bitcoin mining in the Bitcoin and Cryptocurrencies Princeton course.
為了了解比特幣挖礦的經濟學和原理,我建議在“比特幣和加密貨幣普林斯頓”課程中觀看有關比特幣挖礦的講座 。
If you’ve gotten this far, you should understand Bitcoin well enough to walk through a Bitcoin block header and understand what each of its components mean. You should also be able to play around with a Bitcoin block explorer and navigate raw Bitcoin transactions.
如果到此為止,您應該對比特幣有足夠的了解,以遍歷比特幣區塊頭并了解其每個組成部分的含義。 您還應該能夠與比特幣區塊瀏覽器一起玩,并瀏覽原始比特幣交易。
Now is a good time to study up on the history of Bitcoin and cryptocurrencies. The below video, offered by a UC Berkeley Decal, gives a good overview.
現在是學習比特幣和加密貨幣歷史的好時機。 下面的視頻由UC Berkeley Decal提供,提供了很好的概述。
Some more extra credit resources:
一些額外的信貸資源:
Academic precursors to Bitcoin
比特幣的學術先驅
Mechanics of Bitcoin: UTXOs and Bitcoin script (Bitcoin script is not super important, just know roughly what it can do)
比特幣的機制: UTXO和比特幣腳本 (比特幣腳本不是非常重要,只是大致了解它可以做什么)
Short guide to Bitcoin forks
比特幣叉子的簡短指南
Soft forks and miner signaling
軟叉和礦工信號
Double spends, 51% attacks, and selfish mining
雙花,51%攻擊和自私的挖礦
Replay attacks
重播攻擊
Bitcoin scalability problems, which is the source of most of the contentiousness in the Bitcoin ecosystem. You should have an idea of why Bitcoin folks argue so much about the block size.
比特幣可擴展性問題 ,這是比特幣生態系統中大多數爭議的根源。 您應該對比特幣人士為何對區塊大小這么多爭論有個想法。
Segregated witness, a.k.a. SegWit, not essential but it comes up a lot.
孤立的見證人,又名SegWit ,不是必需的,但出現了很多。
Lightning Network, one of the more important scaling solutions for Bitcoin, also generalizes to other blockchains
閃電網絡 ( Lightning Network )是比特幣更重要的擴展解決方案之一,也可以推廣到其他區塊鏈
Bitcoin full nodes, Bitcoin fee statistics, charts, charts and more charts
比特幣完整節點 , 比特幣費用統計 , 圖表 , 圖表和更多圖表
Bitcoin energy consumption index (at the time of publication, Bitcoin mining consumes as much energy as all of Peru)
比特幣能源消耗指數 (在發布之時,比特幣采礦所消耗的能源與秘魯全境一樣多)
Insightful essay by Gwern on the scrappy inelegance of Bitcoin
Gwern的有見地的文章關于比特幣的草率的優雅
Jameson Lopp has a wealth of other resources on Bitcoin if you want to go deeper down the rabbit hole.
如果您想深入研究兔子漏洞,Jamesson Lopp擁有大量的比特幣其他資源 。
以太坊和智能合約編程 (Ethereum and smart contract programming)
Now that you’ve built a blockchain and understand the dynamics of Bitcoin, it’s time to delve into Ethereum.
現在您已經建立了區塊鏈并了解了比特幣的動態,是時候深入研究以太坊了。
You understand how blockchains and proof-of-work can achieve distributed, Byzantine fault-tolerant consensus within a peer-to-peer network. But a payments network is just one application you can run atop such a blockchain. In 2013, Vitalik Buterin, the creator of Ethereum asked: what if you used a blockchain to implement a decentralized computer?
您了解了區塊鏈和工作量證明如何在對等網絡中實現分布式拜占庭容錯共識。 但是支付網絡只是您可以在這樣的區塊鏈之上運行的一個應用程序。 2013年,以太坊的創建者Vitalik Buterin問:如果您使用區塊鏈來實現去中心化計算機該怎么辦?
In Ethereum, you pay miners to execute your programs on this distributed virtual machine. This means you can perform arbitrary computations, using a Turing-complete programming language (unlike Bitcoin script). Obviously that includes payments-related applications, so Ethereum enables a superset of Bitcoin’s functionality and has birthed a renaissance of innovation.
在以太坊中,您需要向礦工付費以在此分布式虛擬機上執行程序。 這意味著您可以使用圖靈完備的編程語言(不同于比特幣腳本)執行任意計算。 顯然,其中包括與支付相關的應用程序,因此以太坊啟用了比特幣功能的超集,并催生了創新復興。
This brings us to smart contracts — the name for programs that run on such a virtual machine. A smart contract can interact directly with the blockchain’s cryptocurrency in accordance with the execution of a program. In other words, you can create financial contracts that automatically enforce themselves. It’s a wild idea, and all sorts of sci-fi futuristic stuff you can do once you embrace this programming model.
這將我們帶入智能合約-在這樣的虛擬機上運行的程序的名稱。 智能合約可以根據程序的執行直接與區塊鏈的加密貨幣進行交互。 換句話說,您可以創建自動執行的金融合同。 這是一個瘋狂的想法,一旦您采用了這種編程模型,便可以進行各種科幻的未來派工作。
Ethereum has enabled the wave of ICOs and developers building atop the blockchain. It is the second largest cryptocurrency behind Bitcoin, it has more than 10x the developers of the next most popular platform, it has the strongest developer team, the most mature tooling, and the majority of ICOs and projects atop it. It also has the most industry support, which goes a long way. In all likelihood, if you’re doing blockchain development, you’ll be writing code for Ethereum smart contracts. (Even if you’re not, it’s essential to understanding what’s going on in this space.)
以太坊推動了ICO和開發人員在區塊鏈之上構建的浪潮。 它是僅次于比特幣的第二大加密貨幣,它的開發者人數是第二受歡迎的平臺的開發者的十倍以上 ,擁有最強大的開發人員團隊,最成熟的工具以及其上的大多數ICO和項目。 它還擁有最多的行業支持 ,這將有很長的路要走。 很有可能,如果您正在進行區塊鏈開發,那么您將為以太坊智能合約編寫代碼。 (即使您不是,也必須了解該空間中發生的事情。)
First, a more detailed high-level explanation of Ethereum:
首先,對以太坊進行更詳細的高級解釋:
The ideas behind Ethereum have also spawned a wave of innovation in cryptoeconomics. You should dip your toes into the ideas around DAOs, and all of the sci-fi fever dreams that they hint at.
以太坊背后的思想也催生了密碼經濟學的創新浪潮 。 您應該全神貫注于DAO的想法,以及它們暗示的所有科幻發燒夢想。
Okay, that’s enough fantasy, let’s dig into the tech.
好吧,那就足夠了,讓我們深入研究技術。
Here’s a good overview of the Ethereum yellow paper and its internals, by Preethi Kasireddy. Ethereum uses an account model rather than Bitcoin’s UTXO model — you’ll soon see why this makes it easier to write smart contracts.
這是Preethi Kasireddy 對以太坊黃紙及其內部的很好概述 。 以太坊使用賬戶模型而不是比特幣的UTXO模型-您將很快明白為什么這使得編寫智能合約變得更加容易。
As with any technology, the best way to get acquainted with Ethereum is by building a few small projects.
與任何技術一樣,了解以太坊的最佳方法是建立一些小項目。
The dominant programming language for Ethereum is Solidity, which is a statically typed JavaScript-esque language. It’s a language with a lot of warts, and many questionable design choices. More robust languages like Viper may replace it once they’re production-ready, but for now Solidity is the lingua franca of smart contract programming. It’s basically Ethereum’s JavaScript, so you’ll need to learn it (and its pitfalls).
以太坊的主要編程語言是Solidity,它是一種靜態類型JavaScript類語言。 這是一種有很多疣的語言,并且有很多可疑的設計選擇。 Viper等更健壯的語言一旦投入生產,就可以取代它,但就目前而言,Solidity是智能合約編程的通用語言。 它基本上是以太坊JavaScript,因此您需要學習它( 及其陷阱 )。
To get your first exposure to Solidity development, I recommend working through all of the CryptoZombies tutorial. It’s a delightful and high-quality Codecademy-esque tutorial that will teach you the basics of Solidity programming.
為了使您第一次接觸Solidity開發,建議您閱讀所有CryptoZombies教程 。 這是一個令人愉悅的高質量Codecademy風格的教程,它將教您Solidity編程的基礎知識。
Now that you’ve whetted your appetite, it’s time to develop on your own.
現在,您已經激發了胃口,現在該是您自己發展的時候了。
The “hello world” of Ethereum is building an ERC-20 compliant token. I recommend this guide as a first tutorial to walk you through the process.
以太坊的“ hello world”正在構建符合ERC-20的令牌 。 我建議將此指南作為第一個教程,以逐步指導您完成該過程。
Remix is an in-browser Solidity editor and compiler — it’s basically the training wheels of Ethereum development, so I recommend working through the rest of your practice in Remix. But it’s also worth setting up a local blockchain and getting a sense of the Ethereum tooling. This tutorial does a good job of walking you through an end-to-end blockchain stack and explaining the pieces as they go along.
Remix是一個瀏覽器內部的Solidity編輯器和編譯器-基本上,它是Ethereum開發的訓練輪,所以我建議您在Remix中完成其余的練習。 但是,建立本地區塊鏈并了解以太坊工具也是值得的。 本教程很好地引導您完成了端到端的區塊鏈堆棧,并解釋了各個過程。
Next I’d recommend building a voting system. I’d call this the Todo App of Ethereum. Karl Floersch has a great tutorial where he walks through how to build a secure commit-reveal voting system.
接下來,我建議構建一個投票系統。 我將其稱為以太坊的Todo App。 Karl Floersch有一個很棒的教程 ,其中他逐步介紹了如何構建安全的提交-公開投票系統。
Great, now for your mid-term exam: build a secure coin toss game, where two players can securely bet on the coin flip. No tutorial this time, do it on your own. Think about possible attacks — how can the players cheat? Can you ensure that they play honestly? Here are some hints.
太好了,現在適合您的期中考試:構建一個安全的擲硬幣游戲,兩個玩家可以安全地在擲硬幣游戲上下注。 這次沒有教程,請自行完成。 考慮一下可能的攻擊-玩家如何作弊? 您能確保他們誠實地比賽嗎? 這里有一些提示 。
智能合約安全 (Smart contract security)
Security is absolutely essential to blockchain development. Smart contracts have been plagued by disastrous hacks, including the DAO hack, the Parity Wallet hack, and the affectionately named Parity Wallet hack 2 (now with its own T-shirt). You absolutely must read analyses of all three of these hacks if you’re going to be writing production smart contracts.
安全性對于區塊鏈開發絕對至關重要。 智能合約受到災難性黑客的困擾,包括DAO黑客 , Parity Wallet hack和親切地命名為Parity Wallet hack 2 (現在帶有自己的T恤 )。 如果要編寫生產智能合約,則絕對必須閱讀對所有這三種黑客的分析。
The truth is, smart contracts are extremely hard to get right. Though the programming toolchain will improve to make these exact attacks harder, they were ultimately all due to programmer error. There are also many subtler bugs that arise from smart contract programming, such as in frontrunning or secure generation of randomness.
事實是, 智能合約很難正確地制定 。 盡管編程工具鏈將有所改進,以使這些確切的攻擊更加困難,但最終歸因于程序員的錯誤。 智能合約編程還會產生許多微妙的錯誤,例如在前端運行或安全地生成隨機性 。
As a smart contract developer, you must treat security as paramount. There’s no “move fast and break things” in smart contract programming. That means any code that handles significant flows of money should be run through static analyzers like Oyente or Securify, tested thoroughly, and then audited by an experienced smart contract auditor. You should also try to rely on pre-audited components, such as OpenZeppelin’s open source contracts.
作為智能合約開發人員,您必須將安全性視為重中之重。 智能合約編程中沒有“快速行動并打破常規”。 這意味著任何代碼來處理的錢顯著流應該通過像靜態分析儀運行Oyente或Securify ,徹底的測試,然后由經驗豐富的智能合約核數師審計。 您還應該嘗試依賴預先審核的組件,例如OpenZeppelin的開源合同 。
To strengthen your security chops, I recommend working through The Ethernaut by OpenZeppelin, a game where you find and attack vulnerabilities in smart contracts. Many of them have you replicate real attacks against smart contracts that have occurred in the wild.
為了加強您的安全性,我建議您通過OpenZeppelin開發的The Ethernaut,該游戲可在其中找到并攻擊智能合約中的漏洞。 他們中的許多人都可以復制針對野外發生的智能合約的真實攻擊。
Phil Daian also has an excellent set of smart contract hacking challenges called Hack This Contract.
菲爾·戴安(Phil Daian)還擁有一系列出色的智能合約黑客攻擊難題,稱為“ 破解此合約” 。
Once you make it past that, I strongly recommend reading the entirety of Smart Contract Best Practices, compiled by ConsenSys. Expect to revisit this document many times over in your smart contract programming career. The bibliography is also worth exploring for further reading by security experts.
一旦您做到這一點,我強烈建議您閱讀由ConsenSys編制的《 智能合約最佳實踐》的全部內容。 期望在您的智能合約編程生涯中多次訪問此文檔。 參考書目也值得探索,以供安全專家進一步閱讀。
卸下訓練輪 (Taking off the training wheels)
If you’ve made it this far, you should now be ready to move past Remix and start using a serious Solidity development stack.
如果到此為止,您現在應該準備通過Remix,開始使用認真的Solidity開發堆棧。
Most developers recommend VSCode or Atom for your text editor, since they have decent Solidity plugins. For interacting with a local blockchain, you’ll want to use Ganache (formerly TestRPC), and you’ll want to use the Truffle framework for your (JS-based) tests and configuring your build pipeline.
大多數開發人員都建議將VSCode或Atom用于文本編輯器,因為它們具有不錯的Solidity插件。 為了與本地區塊鏈進行交互,您將要使用Ganache (以前稱為TestRPC),并且要使用Truffle框架進行基于JS的測試并配置構建管道。
Now is a good time to look into IPFS, which you can use as a fully decentralized filestore at much cheaper cost than the Ethereum blockchain. Here’s a brief explainer by the creator, Juan Benet:
現在是研究IPFS的好時機,您可以將其用作完全去中心化的文件存儲,而成本比以太坊區塊鏈便宜得多。 這是創作者Juan Benet的簡短解釋:
For interacting with Ethereum and IPFS full nodes, Infura is what most devs recommend. Etherscan and ETH Gas Station provide useful real-time stats on the Ethereum network.
為了與以太坊和IPFS完整節點進行交互,大多數開發人員建議使用Infura 。 Etherscan和ETH加油站在以太坊網絡上提供有用的實時統計信息。
Once you have your full Web3 stack set up, try deploying an end-to-end Dapp (decentralized application). This tutorial provides a nice full-stack overview using Node and Postgres for the backend, and this tutorial will show you how to create a fully decentralized application, using IPFS as your persistence layer.
設置完完整的Web3堆棧后,請嘗試部署端到端Dapp(去中心化應用程序)。 本教程提供了一個很好的全棧概述,其中使用Node和Postgres作為后端,并且本教程將向您展示如何使用IPFS作為持久層來創建完全去中心化的應用程序。
建立自己的項目 (Building your own projects)
You should now be comfortable with most of the tech — what’s left is to start building stuff and going deeper into the blockchain community.
您現在應該對大多數技術都感到滿意-剩下的就是開始構建東西并更深入地進入區塊鏈社區。
First, start building your own projects. If there’s some great idea that you’re excited about, go build it, and convince others to hack on it with you! If you don’t have an idea yet or aren’t comfortable getting your hands dirty, there are many high-quality open source projects that welcome contributions. OpenZeppelin might be a good place to start for smart contracts.
首先,開始構建自己的項目。 如果您對某個偉大的想法感到興奮,那就去構建它,并說服其他人與您一起破解它! 如果您還沒有一個主意或者不滿意,那么有很多高質量的開源項目都歡迎您的參與。 OpenZeppelin可能是開始智能合約的好地方。
Better yet, I’d recommend starting by finding an actively developed project that you’re a fan of. Get on their Slack or Rocketchat — the devs are usually readily accessible. Tell them you’d like to contribute and ask for some small tasks (or find unresolved issues on their Github).
更好的是,我建議從找到一個您喜歡的積極開發的項目開始。 使用Slack或Rocketchat-開發人員通常很容易獲得。 告訴他們您想貢獻并要求一些小任務(或在他們的Github上找到未解決的問題)。
Note that while I’ve been focusing on protocols and smart contract development, blockchain companies need web developers to build their core functionality. These roles will often require interacting with blockchains, so it’s essential to have a good mental model of how blockchains work — but for many engineers at blockchain startups, most of your work will be in building a Python webserver, or designing a React frontend, and interacting with the blockchain may be a small part of that job. You don’t have to specialize in smart contract development — in reality, that’s only one part of a working blockchain stack.
請注意,盡管我一直專注于協議和智能合約開發,但區塊鏈公司需要Web開發人員來構建其核心功能。 這些角色通常需要與區塊鏈進行交互,因此擁有一個關于區塊鏈如何運作的良好思維模型至關重要–但是對于區塊鏈初創公司的許多工程師來說,您的大部分工作將是構建Python網絡服務器或設計React前端,與區塊鏈進行交互可能只是該工作的一小部分。 您不必專門研究智能合約開發-實際上,這只是工作中的區塊鏈堆棧的一部分。
Beyond open source contributions, there are also many blockchain hackathons constantly popping up. Most projects have a free public Slack you can join, and there’s a very active Gitter channel for Ethereum itself where lots of devs hang out. As you go deeper into the space, you’ll eventually find your peer group, whether it be in a Slack channel, Telegram group, or Gitter channel. Wherever it is, find your people and continue learning.
除了開源之外,還有許多區塊鏈黑客馬拉松不斷涌現。 大多數項目都有一個免費的公共Slack,您可以加入,并且有一個非常活躍的以太坊本身的Gitter渠道 ,許多開發人員都在這里閑逛。 當您深入該空間時,最終將找到您的對等組,無論是在Slack通道,Telegram組還是Gitter通道中。 無論身在何處,找到您的員工并繼續學習。
導航區塊鏈社區 (Navigating the blockchain community)
The best way to really understand the blockchain world is to immerse yourself in it. Read and listen to the smartest people, especially stuff they’ve written in the past. This has always been my strategy when trying to learn a new domain, and it’s paid dividends for me.
真正了解區塊鏈世界的最好方法是將自己沉浸在其中。 閱讀和聆聽最聰明的人,尤其是他們過去寫的東西。 在嘗試學習新領域時,這一直是我的策略,這對我來說是有好處的。
There’s lots of good blockchain content out there, but there’s also a lot of crap. Here’s the information diet I recommend.
有很多好的區塊鏈內容,但是也有很多廢話。 這是我推薦的信息飲食。
媒體 (Media)
The three fantastic podcasts I recommend are the Software Engineering Daily Blockchain interviews, which provide good technical intros to many topics and cryptocurrencies. From there I recommend Epicenter and Unchained — you’ll want to go back and listen to many of the older episodes. Another interesting up-and-coming technical podcast is Conspiratus. I’d recommend subscribing to each of these.
我推薦的三個出色的播客是《 軟件工程日報》區塊鏈訪談 ,這些訪談為許多主題和加密貨幣提供了很好的技術介紹。 從那里,我推薦Epicenter和Unchained-您將要回去聽許多舊的情節。 另一個有趣的新興技術播客是Conspiratus 。 我建議您訂閱每一個。
There are a few good Youtube channels (though there’s tons of trash on Youtube). Subscribe to the Ethereum Foundation and watch Devcon3 presentations. Blockchain at Berkeley records many of their lectures, most of which are excellent technical overviews. Decypher Media also posts talks, whitepaper reviews, and tutorials. Jackson Palmer has engaging weekly overviews, these are on the less technical side but very evenly presented.
YouTube上有一些不錯的頻道(盡管YouTube上有很多垃圾)。 訂閱以太坊基金會并觀看Devcon3演示。 伯克利的區塊鏈記錄了他們的許多演講,其中大多數都是出色的技術概述。 Decypher Media還發布演講,白皮書評論和教程。 杰克遜·帕爾默(Jackson Palmer )每周進行一次引人入勝的概述,這些概述的技術性程度較低,但呈現得非常均勻。
在線閱讀 (Online reading)
For realtime blockchain chatter, it lives mostly in two places: Reddit, and Twitter. For Reddit, most subreddits are very low quality and dominated by noise. r/Ethereum is consistently decent quality (and there are a few okay subreddits for specific cryptocurrencies). Most subreddits though are primarily dominated by speculators, and are not a good use of your attention. Stay away from Bitcoin-related subreddits. Bitcoin notoriously has one of the most toxic communities, and Reddit only magnifies that.
對于實時區塊鏈聊天,它主要存在于兩個地方:Reddit和Twitter。 對于Reddit而言,大多數子Reddit的質量都非常低,并且受到噪聲的支配。 r /以太坊的質量始終如一(對于特定的加密貨幣,還有一些可以接受的分類)。 但是,大多數子市場主要由投機者主導,并且不能很好地利用您的注意力。 遠離與比特幣有關的次級債券。 眾所周知,比特幣是最有毒的社區之一,而Reddit僅將其放大。
Twitter is more of a mixed bag. For better or for worse, most blockchain people live on Twitter. Blockchain Twitter was somewhat of a mystery to me at first, but eventually I developed an informal ontology of Twitter blockchain people. From my experience, there are five types of blockchain personalities: the builders, the entrepreneurs, the journalists, the traders, and the “thought leaders.”
Twitter的情況更加復雜。 無論好壞,大多數區塊鏈人都生活在Twitter上。 最初,區塊鏈推特對我來說還是個謎,但最終我開發了推特區塊鏈人的非正式本體。 根據我的經驗,有五種類型的區塊鏈個性:建設者,企業家,新聞記者,商人和“思想領袖”。
Avoid “thought leaders” like the plague. Entrepreneurs can be okay, though they mostly act as hype men or tweet about their own projects. Investors mostly tweet about prices and hype-y projects, so if that’s your thing, that’s your thing. Journalists tend to tweet about major news items of the day—I recommend staying away unless you need real-time analysis, which you probably don’t. If you’re an active trader it might be important, but if you’re trying to build on the blockchain, most real-time stuff is a distraction.
避免像瘟疫這樣的“思想領袖”。 企業家可以沒事,盡管他們大都充當炒作或在推銷自己的項目。 投資者大多在推特上談論價格和炒作項目,所以如果那是你的事,那是你的事。 記者傾向于發布當天的重大新聞-我建議您不要使用,除非您需要實時分析,而您可能不需要。 如果您是一位活躍的交易員,這可能很重要,但是如果您嘗試建立在區塊鏈上,那么大多數實時內容都會讓人分心。
Pay the most attention to the builders. They’re the people who matter most right now, and who are pushing the technology forward.
最注意建筑商。 他們是目前最重要的人,他們正在推動技術向前發展。
A few representatives from each category (do a breadth-first search of who these people follow if you want to fill out your Twitter feed):
每個類別的一些代表(如果要填寫您的Twitter feed,請廣度優先搜索這些人的追蹤對象):
建筑商 (Builders)
Vitalik Buterin, Ethereum
以太坊( Vitalik Buterin )
Zooko Wilcox, ZCash
佐科· 威爾科克斯 ( Zooko Wilcox )
Nick Szabo, inventor of smart contracts
智能合約的發明者Nick Szabo
Vlad Zamfir, Ethereum
以太坊( Vlad Zamfir )
Marco Santori, Cooley LLP
馬可·圣托里 ( Marco Santori)
Riccardo “fluffypony” Spagni, Monero
Riccardo“ fluffypony” Spagni ,門羅
Matt Liston, Gnosis
馬特·利斯頓
企業家 (Entrepreneurs)
Balaji Srinivasan, Earn.com
Balaji Srinivasan ,Earn.com
Erik Voorhees, Shapeshift
埃里克·沃希爾斯 ( Erik Voorhees )
投資人 (Investors)
Naval Ravikant, MetaStable
海軍拉維坎特
Ari Paul, Blocktower Capital
Blocktower Capital的Ari Paul
Linda Xie, Scalar Capital
琳達謝 ,標量資本
Chris Burniske, Placeholder
占位符Chris Burniske
記者 (Journalists)
Tuur Demeester, Adamant Research
阿達曼特研究公司Tuur Demeester
Laura Shin, Forbes
福布斯》( Laura Shin )
(You should also follow me, though I definitely don’t belong on this list.)
(您也應該關注我 ,盡管我絕對不屬于此列表。)
All that said, I recommend minimizing your exposure to Twitter and Reddit. If you’re not a journalist or a daytrader, chances are, you don’t need a firehose of realtime chatter. Important information will bubble up to you asynchronously. There are several good news digests that will summarize the most important news of the day/week that you can consume on your own time without being at the mercy of attention markets.
話雖如此,我建議您盡量減少對Twitter和Reddit的訪問。 如果您不是新聞記者或日間交易員,那么您很有可能不需要實時聊天。 重要信息將異步地傳給您。 有幾個好消息摘要,將總結您可以在不依賴關注市場的情況下自行花費的一天/一周中最重要的新聞。
I recommend subscribing to Inside Bitcoin for daily digests of the most important crypto news pieces (it covers more than just Bitcoin). For token projects, Token Economy has excellent weekly writeups, and Week in Ethereum has good digests of developer-focused happenings in the Ethereum ecosystem.
我建議訂閱Inside Bitcoin ,以獲取最重要的加密新聞的每日摘要(不僅涵蓋比特幣)。 對于代幣項目,代幣經濟每周都有出色的記錄,而以太坊周刊則很好地總結了以太坊生態系統中以開發人員為中心的事件。
Beyond this, you probably don’t need to be monitoring for real-time news. Focus on building stuff and learning.
除此之外,您可能不需要監視實時新聞。 專注于構建東西和學習。
You’ll want to follow the best blogs. Long-form content tends to be the best bang for the buck. I recommend following these:
您將要關注最好的博客。 長篇幅的內容往往是最好的選擇。 我建議遵循以下這些:
Vitalik Buterin for excellent blockchain and cryptoeconomic analysis (read all of his older blog posts as well, Vitalik is widely regarded as a once-in-a-generation thinker)
Vitalik Buterin進行出色的區塊鏈和加密經濟分析(也請閱讀他所有較早的博客文章 ,Vitalik被廣泛認為是千載難逢的思想家)
Hacking, Distributed for blockchain security analyses by Cornell researchers
黑客,由康奈爾大學研究人員分發用于區塊鏈安全性分析
Unenumerated, Nick Szabo’s luminary blog with challenging and eclectic essays about the role of cryptocurrencies in society
尼克· 扎博 (Nick Szabo)的名人博客未列舉 ,關于加密貨幣在社會中的作用具有挑戰性和折衷主義的文章
Money Stuff, Matt Levine’s Bloomberg syndication, with cutting and insightful analysis that touches on the intersection of markets, finance, and blockchain news
Money Stuff ,Matt Levine的Bloomberg聯合組織,具有切入點和有見地的分析,涉及市場,金融和區塊鏈新聞的交集
Vlad Zamfir for tempered and cautious perspectives on the state and public blockchains
Vlad Zamfir對州和公共區塊鏈持謹慎態度
Chris Burniske for a string of excellent blog posts on how to value crypto assets
克里斯·伯尼斯克 ( Chris Burniske)撰寫了一系列有關如何評估加密資產的優秀博客文章
Jameson Lopp for his great technical posts from the perspective of a software engineer building for the blockchain ecosystem
Jameson Lopp從為區塊鏈生態系統構建軟件工程師的角度發表了出色的技術文章
Great Wall of Numbers by Tim Swanson, for his sober and unflinching deconstruction of blockchain mania, especially in the enterprise space
蒂姆·斯旺森(Tim Swanson)撰寫的《萬里長城》 ,他對區塊鏈狂熱的清醒和堅定的解構,尤其是在企業領域
(You should also read my blog, though again, I don’t quite belong on this list.)
( 您也應該閱讀我的博客 ,盡管再次,我并不完全屬于此列表。)
書籍和課程 (Books and courses)
If you want a more structured approach to learning this material, there are a few high-quality books and courses out there (and a lot of low-quality ones).
如果您想采用一種更結構化的方法來學習本文,那么這里有一些高質量的書籍和課程(還有很多低質量的書籍和課程)。
The best overall textbook for blockchains is Bitcoin and Cryptocurrency Technologies (which accompanies the Princeton Coursera course). The only other books I’d recommend in this space are Mastering Bitcoin by Andreas Antonopoulos, and his upcoming Mastering Ethereum, co-authored by Ethereum cofounder Gavin Wood (both published by O’Reilly). The one nontechnical book I’d recommend is Digital Gold by Nathaniel Popper. Pretty much everything else worth reading will be in blogs, not books — this space is moving so fast that the most important figures seldom have the time to write books, and books are often outdated by the time they’re released.
最好的整體區塊鏈教科書是比特幣和加密貨幣技術 (普林斯頓Coursera課程隨附)。 在這個領域,我唯一推薦的其他書籍是Andreas Antonopoulos的Mastering Bitcoin ,以及即將推出的Mastering Ethereum ,該書由以太坊聯合創始人Gavin Wood合著(均由O'Reilly出版)。 我會推薦的一本非技術性書籍是Nathaniel Popper的Digital Gold 。 幾乎所有其他值得閱讀的內容都將出現在博客中,而不是書籍中-這種空間發展得如此之快,以至于最重要的人物很少有時間去寫書,而書的發行時間往往已經過時了。
If you want a more structured approach to learning this material, there are a few high-quality courses out there (and a lot of low-quality ones). I’ve already linked to a couple lectures from the Princeton Coursera Course (the videos are on Youtube as well), and the UC Berkeley Decal. I’ve also heard good things about Consensys Academy for folks who want to get into smart contract development.
如果您想采用一種更有條理的方法來學習本文,那么這里有一些高質量的課程(還有很多低質量的課程)。 我已經鏈接到普林斯頓Coursera課程的一些講座(視頻也在Youtube上 )和UC Berkeley Decal上 。 我還聽說過Consensys學院的好事,適合想要進行智能合約開發的人們。
I’m also teaching a 4-week seminar on cryptocurrencies for software developers at the Bradfield School of Computer Science in SF. The course is in-person in SF only and seats are limited, since it’s a small and in-depth seminar-style class. But if you’re a software engineer in SF and want to learn more about the theory and practice behind cryptocurrencies, it might be a good fit for you.
我還在SF的Bradfield計算機科學學院為軟件開發人員講授為期4周的加密貨幣研討會 。 由于這是一門小型且深入的研討會式課程,因此該課程僅在SF中進行,并且席位有限。 但是,如果您是SF的軟件工程師,并且想了解有關加密貨幣背后的理論和實踐的更多信息,那么它可能非常適合您。
得到一份工作 (Getting a job)
As I said before, blockchain startups are hiring like crazy. If you’ve actually gotten this far and have done even half the things I suggested, you are probably already employable in this space. AngelList did a great writeup on how to get a job in the crypto space.
如我之前所說,區塊鏈初創公司正在瘋狂招募。 如果您實際上已經走了這么遠,并且完成了我建議的一半工作,那么您可能已經在這個領域中受雇了。 AngelList在如何獲得加密貨幣領域的工作方面寫得很棒 。
There are several good aggregators for blockchain-related job postings:
有一些很好的聚合器可用于與區塊鏈相關的職位發布:
AngelList crypto startups
AngelList加密創業公司
BlockchainJobz
區塊鏈喬布斯
Ethereum Jobs
以太坊工作
Be in Crypto
處于加密狀態
Blockchain Job Board
區塊鏈工作委員會
Crypto Jobs List
加密作業列表
Google jobs (blockchain search query)
Google職位(區塊鏈搜索查詢)
ConsenSys jobs (Ethereum venture studio with many projects under their umbrella)
ConsenSys職位 (以太坊風險工作室,旗下有許多項目)
Some particularly promising blockchain startups that I know are hiring devs:
我知道一些特別有前途的區塊鏈初創公司正在招聘開發人員:
0x
0x
Dharma Labs
佛法實驗室
Civic
思域
There are also a number of larger companies in the market for crypto devs:
市場上還有一些較大的加密開發人員公司:
Coinbase, the Google of crypto, is always hiring like crazy
加密貨幣的Google Coinbase一直瘋狂地招聘
Stellar and Ripple if you want to work directly on more enterprise-friendly cryptocurrencies
恒星和紋波 ,如果你想直接工作在更多的企業友好cryptocurrencies
Square has integrated some blockchain, though not sure if they’re hiring externally
Square has integrated some blockchain, though not sure if they're hiring externally
IBM, Visa, or JP Morgan if you want to kick it old school
IBM , Visa , or JP Morgan if you want to kick it old school
(Note that this specific company list is super Bay Area-centric, because that’s where I live, so your mileage may vary. The job aggregators are more global though.)
(Note that this specific company list is super Bay Area-centric, because that's where I live, so your mileage may vary. The job aggregators are more global though.)
But to my mind, the best way to get involved in a company is to find a project you’re excited about and reach out to them directly. Most blockchain teams are willing to hire remote for the right talent. Many devs are readily accessible on Twitter, Github, or on their public Slack channels. If you have a solid portfolio and can demonstrate technical chops, most people will be impressed if you show some initiative.
But to my mind, the best way to get involved in a company is to find a project you're excited about and reach out to them directly. Most blockchain teams are willing to hire remote for the right talent. Many devs are readily accessible on Twitter, Github, or on their public Slack channels. If you have a solid portfolio and can demonstrate technical chops, most people will be impressed if you show some initiative.
And that’s as far as I’ve got for you. If you’ve done all of the above, you should be set, and you’ll probably be even farther along than me before long.
And that's as far as I've got for you. If you've done all of the above, you should be set, and you'll probably be even farther along than me before long.
The rabbit wormhole (The rabbit wormhole)
What I’ve shown you is just the beginning. Cryptocurrencies are still in their infancy, and I really believe the is the most rapidly evolving space you can be working in. I’m sure this guide will be out of date within a year, and there are so many amazing projects I haven’t had the opportunity to talk about. But if you get into this space, you’ll find them in due time.
What I've shown you is just the beginning. Cryptocurrencies are still in their infancy, and I really believe the is the most rapidly evolving space you can be working in. I'm sure this guide will be out of date within a year, and there are so many amazing projects I haven't had the opportunity to talk about. But if you get into this space, you'll find them in due time.
Keep exploring. Keep getting better. Keep learning.
Keep exploring. Keep getting better. Keep learning.
And I hope to see you come join us.
And I hope to see you come join us.
Haseeb
Haseeb
翻譯自: https://www.freecodecamp.org/news/the-authoritative-guide-to-blockchain-development-855ab65b58bc/
區塊鏈開發指南