本指南的目的是使您尽快沉浸于Web3中,以便您具备开始学习和开始开发所需的上下文和基本理解。.
为什么选择区块链?
如果您是该领域的新手,可能还不清楚“去中心化互联网”为开发人员提供了什么。想像以太坊这样的公共区块链为参与其中的每个人定义了一个清晰的“状态”和真理源,任何与互联网相连的人都可以使用该系统,该系统利用开源协议的强度和冗余性对等网络的连接,以保持可信度和安全性。不必要求每个应用程序开发人员在私有服务器上创建和维护其应用程序的整个状态,而是可以将许多存储在公共区块链上或从公共区块链中检索。通用的,可信任的,安全的后端.
之所以可行,是因为区块链数据库的独特特性。它是只写的:在典型的数据库可以添加和删除记录的地方,区块链数据永远存在,无法删除。节点网络将该数据库维护为“分布式分类帐”,并且具有严格的协议,围绕谁在给定时间具有写权限。该技术有趣的方面之一是如何在可能不需要特殊许可才能加入的节点之间分配写许可。如果您旋转自己的公共以太坊节点,则您将具有对整个网络的写访问权限:只要您已完成所需的“工作量证明”即可为您提供在编写任何其他节点之前编写节点的特权.
实际使用的区块链技术的一个典型的典型例子是发送和接收加密货币的简便性。以太坊公共分类账允许开发人员无需银行,账户或其他中介机构即可实现支付网关.
开发人员可以创建自己的以太坊令牌,而无需创建用户进行交易所需的基础设施。在线游戏平台可能会对游戏中的物品进行令牌化,用户可以购买这些令牌并在平台外进行交易,并与游戏平台本身分开拥有它们。除了用于游戏中交易的物品外,数字收藏品还具有巨大的未来潜力。随着电子竞技的普及,您可能会获得数字标记化的等同于“本垒打”的球.
每个用户都有自己的公钥/私钥对,因此用户身份验证变得更加简单,因为应用程序仅需要验证用户是否可以使用其私钥对交易进行签名.
智能合约可用于创建可编程货币。考虑一下可编程智能合约的基本用法,以解决公寓的两个所有者希望将租户的租金分摊为50/50的情况。通常,承租人将不得不分别向每个所有者付款,或者将向一个所有者或代理商付款,而所有者或代理商将支付这笔钱。尽管这种情况并没有特别大的问题,但请考虑一个人需要隐性信任才能向另一人提供他们的份额。将其与一个简单的智能合约进行对比,该合约以编程方式拆分所有入金并将其发送到每个所有者的地址。承租人只需将租金发送到该地址,每个所有者将立即收到他们的份额。由于像以太坊这样的区块链的安全性和不变性,每个所有者都可以确保智能合约将按预期运行,并可以审核其代码.
一旦有了区块链提供的数字信任骨干,我们就可以将编程的好处应用于重要的社会问题。我们可以用几行代码提供银行服务。我们只需单击几下即可确认身份。所有协议都可以在世界上几乎任何计算机上运行.
随着空间的不断发展,开发人员将有很多机会来开发新的工具,应用程序和系统,并为该技术提出新颖的用例。.
寻找问题的解决方案?
批评区块链技术的一个共同点是,它是一种寻找问题的解决方案。可能有人争辩说,数字货币是第一个区块链杀手级应用,而分布式金融(DeFi)正准备成为下一个,目前尚不清楚该技术的应用范围,这是开发人员的主要原因之一。在太空中,成为其中的一员令人兴奋。十多年来,激光技术一直没有明显的用途,直到研究人员,实验人员和企业家能够以完全出乎意料的方式应用它。尽管同一论点可以用于任何新技术,但数字货币的广泛采用以及当前分布在分布式,非托管,去中心化区块链上的超过3500亿美元是非常了不起的.
基本的分布式应用程序结构
一般来说,分布式应用程序是一种连接到其堆栈中某处的区块链的应用程序,并且可能以某种方式对其操作至关重要。分布式应用程序是您在网络应用程序中可以找到的常见的前端和后端系统的组合,但是将使用诸如web3.js之类的库连接到以太坊网络。一些分布式应用程序是完全分布式的:完全生活在分布式网络上.
在用户端, MetaMask 是管理用户的以太坊钱包的流行插件。 MetaMask为用户提供了一个界面来签署交易并证明其“身份”.
给定的分布式应用程序可以连接到以太坊区块链,也可以连接到用户MetaMask钱包(或另一个钱包)以进行身份验证.
与以太坊接口
通常,要与以太坊进行交互,您需要操作一个节点。节点是区块链结构的基本组成部分,对等点连接到其他对等点以形成分散式结构。该协议是公共主网上的王者:没有中央服务器,没有权限,也没有限制谁可以操作节点。所有参与节点只有一个通用协议.
许多应用程序开发人员宁愿不运行自己的以太坊节点,因此诸如 Infura 提供以太坊的网关和API可供开发人员使用.
智能合约
虽然比特币网络是最著名的区块链之一,但以太坊拥有一个令开发人员更加兴奋的功能集,因为它包含一个可运行称为智能合约的小型程序的图灵完备的虚拟机。因此,以太坊拥有所有区块链生态系统中最强大,最活跃的开发者社区.
智能合约在节点上运行,并使用交易进行输入和输出。智能合约驻留在区块链上的地址中,就像用户的帐户地址一样。要与智能合约进行交互,您只需向其发送交易和输入数据即可.
气体
运行智能合约需要耗费大量的天然气,这是一笔很小的费用,可以补偿节点运营商执行智能合约的服务,同时还可以减少垃圾邮件的发生率(使垃圾邮件变得昂贵),并防止编码错误的智能合约无限循环并阻塞网络。.
主网,测试网,其他网络
区块链术语中的主网是指给定协议的主要活动网络。就以太坊而言,主网是交换真实价值的地方,被认为是真理的来源。但是任何一组节点都可以形成自己的网络。 Testnets通过提供免费的Eth和gas的小型网络来为开发人员社区提供服务,因此开发人员可以毫无风险地测试其项目和代码。以太坊测试网被命名为Ropsten,Kovan,Rinkeby和Görli.
以太坊网络还用于企业应用程序:在许可的基础上运行的定制网络(相对于无许可的主网和测试网),以促进一小群组织之间的交易和其他操作。这些网络的节点要少得多,并且通常用于特定目的。例如,大型银行可能使用区块链进行银行间结算.
以太坊的发展
以太坊的开发通常首先在本地的自家区块链上进行。开发人员可以自由使用geth之类的命令行软件来创建以太坊网络。但这就像使用低级语言进行编程一样:Truffle套件可满足许多开发人员的需求,简化了工作。 Ganache是该套件的一部分,使开发人员更容易启动本地区块链网络来测试其应用程序,并提供用于开发目的的“一键式区块链”以及命令行工具。 Drizzle帮助进行前端开发,而Truffle本身就是使智能合约开发和部署更加容易的框架.
与区块链本身进行交互需要使用API(例如web3.js)并访问节点。而不是操作自己的节点,许多开发人员将使用诸如 Infura 作为以太坊API.
智能合约语言
当前,用于编写智能合约的最流行语言是 坚固性. 这种类似于javascript的语言对于新开发人员尤其是具有Web编码经验的开发人员来说非常容易上手。. 混音 是一个在线IDE,可让开发人员尝试创建智能合约。对于智能合约程序员来说,有许多重要的细节需要学习,因为主网上的智能合约是按实际价值运行的,并且一旦部署就无法更改(尽管有一些编程方法可以帮助实现这一点).
全栈
与所有现代Web开发一样,在堆栈的各个级别使用组件的选项也很多。您可以在始终最新的区块链堆栈中获取更多详细信息.
一个简单的项目堆栈
您可以在一个简单的项目中使用以下典型的开发工具集:
NPM
节点包管理器,属于node.js
松露框架
一套简化开发的工具
伽纳彻
来自Truffle框架,用于在您自己的计算机上启动私有区块链
MetaMask
区块链用户界面和以太坊的网关;这是一个浏览器插件和移动应用,您的应用可以连接到该应用,从而允许用户签署交易并执行其他任务.
坚固性
流行的智能合约编程语言
HTML / CSS / JS
为您的前端
Web3.js
一个以太坊API库,可让您连接以太坊网络并与之交互
Infura
以太坊API服务,使开发人员无需运行自己的节点即可访问以太坊网络
如果您准备开始使用,我们的3步指南将详细介绍如何逐步引导您快速上手并在区块链上运行.
- 开发人员入职:步骤1

开发人员入职:步骤1
开发人员入职:步骤2
开发人员入职:步骤2
开发人员入职:步骤3