Truffle以太坊合约部署实战

详细介绍如何利用truffle,完成以太坊合约的编译部署测试

# 概述 truffle 是世界级的以太坊开发框架 * 内置智能合约编译、连接、开发和二进制管理 * 快速开发的自动化合约测试 * 脚本、可扩展性部署和迁移框架 * 用于部署到任意数量的公网和私网的网络管理 * 为合约通信提供交互式控制台 # 创建项目 truffle init # 目录结构 * contracts: 存放合约 * migrations: 存放部署脚本 * test: 测试文件 * truffle-config.js: 配置文件,配置不同网络 # 创建合约 ``` pragma solidity ^0.4.24; contract SimpleStorage{ uint storedData; function set(uint x) public{ storedData =x; } function get() public view returns (uint){ return storedData; } } ``` # 编译合约 ### 生成build/contract 编译文件 truffle compile 执行编译之后,会生成build文件夹,里面会有abi、bytecode、network ![image.png](https://img.learnblockchain.cn/attachments/2020/07/NXGsSaHs5f092f51b16f4.png) # 部署脚本 ``` const SimpleStorage = artifacts.require("SimpleStorage"); module.exports = function(deployer) { deployer.deploy(SimpleStorage); }; ``` # 部署网络 ``` //你所要部署的网络的名字 ganacheNet: { host: "127.0.0.1", // Localhost (default: none) port: 7545, // Standard Ethereum port (default: none) network_id: "*", // Any network (default: none) }, ``` # 结果展示 ``` truffle migrate --network ganacheNet ``` ![image.png](https://img.learnblockchain.cn/attachments/2020/07/NUP8uOvh5f092faaa154d.png) ``` 此时交易已经产生到ganache ``` ![image.png](https://img.learnblockchain.cn/attachments/2020/07/br1JGPA75f0930e8754ba.png) # 通过remix测试 ``` at address 用 ganache 里面的 create address ``` ![image.png](https://img.learnblockchain.cn/attachments/2020/07/jsnvezn45f09307201c90.png) **Git 地址** [https://github.com/potaxie/truffle-init](https://github.com/potaxie/truffle-init)

概述

truffle 是世界级的以太坊开发框架
  • 内置智能合约编译、连接、开发和二进制管理
  • 快速开发的自动化合约测试
  • 脚本、可扩展性部署和迁移框架
  • 用于部署到任意数量的公网和私网的网络管理
  • 为合约通信提供交互式控制台

创建项目

truffle init

目录结构

  • contracts: 存放合约
  • migrations: 存放部署脚本
  • test: 测试文件
  • truffle-config.js: 配置文件,配置不同网络

创建合约

pragma solidity ^0.4.24;

contract SimpleStorage{
    uint storedData;

    function set(uint x) public{
        storedData =x;
    }

    function get() public view returns (uint){
        return storedData;
    }
}

编译合约

生成build/contract 编译文件

truffle compile

执行编译之后,会生成build文件夹,里面会有abi、bytecode、network

部署脚本

const SimpleStorage = artifacts.require("SimpleStorage");

module.exports = function(deployer) {
    deployer.deploy(SimpleStorage);
};

部署网络

    //你所要部署的网络的名字
    ganacheNet: {
     host: "127.0.0.1",     // Localhost (default: none)
     port: 7545,            // Standard Ethereum port (default: none)
    network_id: "*",       // Any network (default: none)
    },

结果展示

truffle migrate --network ganacheNet

此时交易已经产生到ganache

通过remix测试

at address 用 ganache 里面的 create address

Git 地址 https://github.com/potaxie/truffle-init

区块链技术网。

  • 发表于 2020-07-11 11:32
  • 阅读 ( 1929 )
  • 学分 ( 145 )
  • 分类:以太坊

评论