如何在以太坊上简单地部署智能合约
您正在创建区块链解决方案吗?
创建和部署智能合约是一个重要的过程。一旦部署,它就可供以太坊网络使用。本文将带您完成在以太坊软件开发期间部署智能合约所需的所有步骤。
在此之前,让我们稍微讨论一下智能合约。
什么是智能合约?
智能合约是驻留在区块链上的软件程序。它是一个集合 数据和功能 (代码)位于以太坊区块链上的特定地址。智能合约像任何常规合约一样定义规则和条件,并通过代码自动运行。一旦部署了智能合约,它就会在以太坊网络上创建一个实例。部署过程是通过发送带有字节码的事务来执行的。
在本地网络与以太坊网络上部署智能合约
在本地网络上部署智能合约的方法与在以太坊网络上的方法不同。在本地网络上,例如模拟器。使用 Ganache-cli。它自动处理和执行所有功能。由于交易是在本地测试网络上进行的,因此用户无需手动跟踪 gas 数量或担心安全性。另一方面,在以太坊网络上部署智能合约时,用户必须确保一些注意事项。
在部署智能合约之前,请确保您的以太坊网络中有一些以太币,因为部署过程充当交易并且需要一些气体来执行。通常,以太坊网络上的交易需要 15 秒到 15 分钟。本地网络和以太坊网络有一个共同点,都是使用 Web3 来建立 js 应用程序和区块链网络之间的连接。为此,创建了一个连接到以太坊网络的节点。 Infura 是一个公共 API,可用于创建节点而不是您自己创建节点。
只需在 Infura 上注册并创建一个新项目。更改端点并将 URL 保存到您选择的任何位置。在此之后,您将不需要安装完整节点。
在以太坊上部署智能合约的步骤
无论您是在公共或私有以太坊区块链上工作,还是在以太坊 DApp 开发过程中,部署智能合约都是重要的一步。您需要处理许多支持以太坊环境的依赖项和工具。
请按照以下步骤部署您的智能合约。
- 安装所有必要的工具和依赖项
我们需要一些基本的工具来开始。假设您使用以下任何操作系统。**
**
- 视窗
- Mac OS X
- Linux
现在下载 Node.js(8.9.4 或更高版本)。运行以下 Truffle 命令以运行以太坊客户端。它提供对标准 JSON RPC API 的支持。
npm i -g 松露
- 创建智能合约
对于 Solidity 中的以太坊智能合约开发,您可以使用 OpenZeppelin 库来帮助您确保安全并最大限度地降低风险。 OpenZeppelin 具有 ERC 标准的内置实现。
同样,您可以使用 Remix 集成开发环境 (IDE) 作为编写智能合约的工具。它是一个基于 Web 的 DApp,您无需安装任何工具即可访问。
- 部署
我们将研究部署智能合约的三种不同方法。
3.1。在使用 Ganache 的个人区块链上
3.2.在公共测试网络上,即 Rinkeby
3.3.在以太坊主网上
因此,让我们一一来看看。
3.1。关于使用 Ganache 的个人区块链
为了在本地区块链上部署智能合约,我们将使用 Ganache。它允许您运行、测试和执行智能合约并管理区块链操作。
- 在您的桌面上下载 Ganache
- 在浏览器中打开 Remix IDE。单击“+”图标并写入文件名
- 编写代码来测试和编译它
- 编译完成后,在桌面上打开 Ganache 并点击“Quickstart Ethereum”
- 现在,您的区块链网络上有 10 个默认帐户,托管在本地 RPC 服务器上( HTTP://127.0.0.1:7545 )
- 转到浏览器中的 Deploy 部分,然后从下拉菜单中选择 Web3 Provider
- 进入 HTTP://127.0.0.1:7545 在 Web3 Provider Endpoint 中并单击“部署”按钮
- 现在展开合约并单击 get_output() 函数以获取智能合约的输出
- 要查看您的交易,请打开 Ganache -> 交易
3.2.在公共测试网络上,即 Rinkeby
这是使用 Rinkeby 上的 Geth 和 Solidity 编译器在公共测试网络上部署智能合约的第二种方法。 Solidity 是用于智能合约的以太坊编程语言。
- 使用 npm install -g solc 安装 solc(Solidity 编译器)。它可以帮助您创建以太坊虚拟机 (EVM) 可以翻译的操作码。
- 安装 Node.js
- 使用安装 Geth 苹果电脑 或者 视窗 盖特装置。它是运行完整的以太坊节点的命令行界面 (CLI)。它提供了许多接口,包括 JSON RPC 服务器、CLI 子命令和控制台
- 从以太坊命令行工具网页安装 CLI
- 开始写 智能合约代码 并保存
- 打开终端窗口并编译应用程序二进制接口(ABI)和字节码中的代码以部署在区块链上。显示文件内容
- 在 Rinkeby 测试网上创建一个帐户。在控制台可以看到币基地址、数据目录等信息
- 要从 Geth 部署智能合约,请使用您的密码开设一个帐户,并使用控制台上显示的信息设置 ABI 和字节码
3.3.在以太坊主网上
第三种方法是使用以下工具在以太坊主网上部署智能合约。
- Web3js:它提供了一系列库,允许您使用 IPC、HTTP 或 WebSocket 与以太坊节点建立连接
- Truffle:它是一个使用 EVM 为区块链部署智能合约的测试框架和开发环境。
- Testrpc:它是一个区块链模拟器,允许您与区块链交互而无需任何开销。它还允许您实例化固定数量的 Ether,回收或重置它
要在实际的以太坊网络上部署智能合约,您需要在您的帐户中拥有以太币。以太坊账户有两种类型。首先是“合约账户”,它完全基于智能合约并由代码控制。另一个是人们加入网络的“EOA”。
- 安装 Web3js、Truffle 和 testrpc
- 打开 testrpc 并运行一个实例。从 eth-lightwallet 获取公钥和私钥信息并在 config.js 文件中更新
- 为了部署智能合约,我们将使用 Truffle。请记住,您的以太坊帐户中只有一些以太币用于部署过程
- 打开终端,转到您的 Truffle 目录并运行命令:“truffle deploy”
- 将部署一个智能合约,您将获得其地址
我希望这篇文章足够有用,可以帮助您在以太坊区块链上部署智能合约。
大多数时候,企业或初创公司都在寻找一些以太坊开发服务,而不是聘请内部团队并为他们提供所有资源和设备。如果您也在寻找一个,我建议您使用 InvoBlox。它以极其实惠的价格提供一流的区块链开发服务。如果您确定以太坊区块链环境的不同性质所需的依赖项和工具,则部署智能合约非常方便。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/40044/53593009
标签:以太,部署,网络,智能,区块,合约 From: https://www.cnblogs.com/amboke/p/16743918.html