区块链开发指南_区块链开发权威指南

区块链开发指南

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:

本指南将分十部分进行:

  1. Why should you learn blockchain development?

    为什么要学习区块链开发?

  2. Prerequisites

    先决条件

  3. The theoretical foundations of Bitcoin

    比特币的理论基础

  4. Building a blockchain yourself

    自己建立区块链

  5. Ethereum and smart contract programming

    以太坊和智能合约编程

  6. Smart contract security

    智能合约安全

  7. Taking off the training wheels

    卸下训练轮

  8. Building your own projects

    建立自己的项目

  9. Navigating the blockchain community

    导航区块链社区

  10. 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:

如果您不确定,我不会告诉您是否应该加入。但是我可以告诉您五个说服我迈出这一步的理由:

  1. 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.

一旦您不再生活在一台机器上,就必须开始进行有关一致性共识性的推理。 您将要知道线性化模型和最终一致性模型之间的区别。 您还将需要学习诸如PaxosRAFT之的容错共识算法的保证。 了解分布式系统中时间推理的困难 。 理解安全性和活力之间的权衡。

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值