首页 > 其他分享 >如何在以太坊上简单地部署智能合约

如何在以太坊上简单地部署智能合约

时间:2022-09-30 10:00:25浏览次数:76  
标签:以太 部署 网络 智能 区块 合约

如何在以太坊上简单地部署智能合约

您正在创建区块链解决方案吗?

创建和部署智能合约是一个重要的过程。一旦部署,它就可供以太坊网络使用。本文将带您完成在以太坊软件开发期间部署智能合约所需的所有步骤。

在此之前,让我们稍微讨论一下智能合约。

什么是智能合约?

智能合约是驻留在区块链上的软件程序。它是一个集合 数据和功能 (代码)位于以太坊区块链上的特定地址。智能合约像任何常规合约一样定义规则和条件,并通过代码自动运行。一旦部署了智能合约,它就会在以太坊网络上创建一个实例。部署过程是通过发送带有字节码的事务来执行的。

在本地网络与以太坊网络上部署智能合约

在本地网络上部署智能合约的方法与在以太坊网络上的方法不同。在本地网络上,例如模拟器。使用 Ganache-cli。它自动处理和执行所有功能。由于交易是在本地测试网络上进行的,因此用户无需手动跟踪 gas 数量或担心安全性。另一方面,在以太坊网络上部署智能合约时,用户必须确保一些注意事项。

在部署智能合约之前,请确保您的以太坊网络中有一些以太币,因为部署过程充当交易并且需要一些气体来执行。通常,以太坊网络上的交易需要 15 秒到 15 分钟。本地网络和以太坊网络有一个共同点,都是使用 Web3 来建立 js 应用程序和区块链网络之间的连接。为此,创建了一个连接到以太坊网络的节点。 Infura 是一个公共 API,可用于创建节点而不是您自己创建节点。

只需在 Infura 上注册并创建一个新项目。更改端点并将 URL 保存到您选择的任何位置。在此之后,您将不需要安装完整节点。

在以太坊上部署智能合约的步骤

无论您是在公共或私有以太坊区块链上工作,还是在以太坊 DApp 开发过程中,部署智能合约都是重要的一步。您需要处理许多支持以太坊环境的依赖项和工具。

请按照以下步骤部署您的智能合约。

  1. 安装所有必要的工具和依赖项

我们需要一些基本的工具来开始。假设您使用以下任何操作系统。**
**

  • 视窗
  • Mac OS X
  • Linux

现在下载 Node.js(8.9.4 或更高版本)。运行以下 Truffle 命令以运行以太坊客户端。它提供对标准 JSON RPC API 的支持。

npm i -g 松露

  1. 创建智能合约

对于 Solidity 中的以太坊智能合约开发,您可以使用 OpenZeppelin 库来帮助您确保安全并最大限度地降低风险。 OpenZeppelin 具有 ERC 标准的内置实现。

同样,您可以使用 Remix 集成开发环境 (IDE) 作为编写智能合约的工具。它是一个基于 Web 的 DApp,您无需安装任何工具即可访问。

  1. 部署

我们将研究部署智能合约的三种不同方法。

3.1。在使用 Ganache 的个人区块链上

3.2.在公共测试网络上,即 Rinkeby

3.3.在以太坊主网上

因此,让我们一一来看看。

3.1。关于使用 Ganache 的个人区块链

为了在本地区块链上部署智能合约,我们将使用 Ganache。它允许您运行、测试和执行智能合约并管理区块链操作。

  1. 在您的桌面上下载 Ganache
  2. 在浏览器中打开 Remix IDE。单击“+”图标并写入文件名
  3. 编写代码来测试和编译它
  4. 编译完成后,在桌面上打开 Ganache 并点击“Quickstart Ethereum”
  5. 现在,您的区块链网络上有 10 个默认帐户,托管在本地 RPC 服务器上( HTTP://127.0.0.1:7545 )
  6. 转到浏览器中的 Deploy 部分,然后从下拉菜单中选择 Web3 Provider
  7. 进入 HTTP://127.0.0.1:7545 在 Web3 Provider Endpoint 中并单击“部署”按钮
  8. 现在展开合约并单击 get_output() 函数以获取智能合约的输出
  9. 要查看您的交易,请打开 Ganache -> 交易

3.2.在公共测试网络上,即 Rinkeby

这是使用 Rinkeby 上的 Geth 和 Solidity 编译器在公共测试网络上部署智能合约的第二种方法。 Solidity 是用于智能合约的以太坊编程语言。

  1. 使用 npm install -g solc 安装 solc(Solidity 编译器)。它可以帮助您创建以太坊虚拟机 (EVM) 可以翻译的操作码。
  2. 安装 Node.js
  3. 使用安装 Geth 苹果电脑 或者 视窗 盖特装置。它是运行完整的以太坊节点的命令行界面 (CLI)。它提供了许多接口,包括 JSON RPC 服务器、CLI 子命令和控制台
  4. 从以太坊命令行工具网页安装 CLI
  5. 开始写 智能合约代码 并保存
  6. 打开终端窗口并编译应用程序二进制接口(ABI)和字节码中的代码以部署在区块链上。显示文件内容
  7. 在 Rinkeby 测试网上创建一个帐户。在控制台可以看到币基地址、数据目录等信息
  8. 要从 Geth 部署智能合约,请使用您的密码开设一个帐户,并使用控制台上显示的信息设置 ABI 和字节码

3.3.在以太坊主网上

第三种方法是使用以下工具在以太坊主网上部署智能合约。

  • Web3js:它提供了一系列库,允许您使用 IPC、HTTP 或 WebSocket 与以太坊节点建立连接
  • Truffle:它是一个使用 EVM 为区块链部署智能合约的测试框架和开发环境。
  • Testrpc:它是一个区块链模拟器,允许您与区块链交互而无需任何开销。它还允许您实例化固定数量的 Ether,回收或重置它

要在实际的以太坊网络上部署智能合约,您需要在您的帐户中拥有以太币。以太坊账户有两种类型。首先是“合约账户”,它完全基于智能合约并由代码控制。另一个是人们加入网络的“EOA”。

  1. 安装 Web3js、Truffle 和 testrpc
  2. 打开 testrpc 并运行一个实例。从 eth-lightwallet 获取公钥和私钥信息并在 config.js 文件中更新
  3. 为了部署智能合约,我们将使用 Truffle。请记住,您的以太坊帐户中只有一些以太币用于部署过程
  4. 打开终端,转到您的 Truffle 目录并运行命令:“truffle deploy”
  5. 将部署一个智能合约,您将获得其地址

我希望这篇文章足够有用,可以帮助您在以太坊区块链上部署智能合约。

大多数时候,企业或初创公司都在寻找一些以太坊开发服务,而不是聘请内部团队并为他们提供所有资源和设备。如果您也在寻找一个,我建议您使用 InvoBlox。它以极其实惠的价格提供一流的区块链开发服务。如果您确定以太坊区块链环境的不同性质所需的依赖项和工具,则部署智能合约非常方便。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/40044/53593009

标签:以太,部署,网络,智能,区块,合约
From: https://www.cnblogs.com/amboke/p/16743918.html

相关文章

  • 如何使用智能IC卡登录web系统
    在web浏览器中如何使用智能IC卡来登录系统呢?在BS架构软件中,使用刷智能IC卡来登录系统,而不是输入用户名和密码,这样不仅快而且方便,让使用者有更好的体验。要实现这种功能,其实......
  • 智能指针
    RAII(ResourceAcquisitionIsInitialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。在对象构造时获取资源,接着控制......
  • python人工智能项目实战,PDF+源码
    机器学习AI算法工程 公众号:datayx《python人工智能项目IntelligentProjectsUsingPython》实施机器学习和深度学习方法,使用Python构建智能,认知AI项目主要特点帮助您掌......
  • 企业如何通过智能产品实现人力资源数字化转型
        在如今数字化时代,如果企业人力资源管理的内外部环境发生改变,战略目标将会随着市场环境产生变化,组织架构越来越扁平化、人员流动性也会增高。传统的企业人力资源......
  • 智能工厂的ERP和MES之间的区别?
    无论在哪里,ERP(EnterpriseResourcePlanning,企业资源计划)和MES(ManufacturingExecutionSystem,即制造执行系统)系统都不是同样的东西,也不应该拿来谈区别的,在智能工厂......
  • 为什么 MES 管理系统是智能制造的核心?
    不能说MES管理系统是智能制造的核心,只能说MES管理系统是智能制造的核心的一部分,并且是一小部分。智能制造的核心的为高端制造装备和工业互联网平台,引用工信部赛迪研究院......
  • 数智化下,如何构建万物互联的智能世界?
    数智化其实就是数字化的另一种提法而已,本身数字化已经包含了智能化,如果没有智能化,纯粹数字化也没有意义,所以在提“数字化”时本身就已经包含了智能化的部分,数字化的更专业......
  • C++11:智能指针
    C++11中有unique_ptr、shared_ptr与weak_ptr等智能指针(smartpointer),定义在memory中。可以对动态资源进行管理,保证任何情况下,已构造的对象最终会销毁,即它的析构函数最终......
  • 以太网(FCS) CRC 计算方法
    以下图示为使用fpga接收端接收到对方发送过来的一个ARP数据请求包当我构建完发送的数据包的时候,以太网层的CRC也叫FCS校验,该如何计算呢......
  • 打造一站式智能运维系统,「华汇数据」为政企降低运维成本
    在新基建、数字化、智能化的建设浪潮下,随着大数据、人工智能、云计算等新兴技术的深入应用,IT运维管理成为时下IT界的热门话题之一。IT运维市场需求爆发,但当前只有极少数企业......