精华内容
下载资源
问答
  • Truffle 部署 编译 测试 智能合约 的 完整实践操作目标 搭建开发环境 创建一个Truffle项目 编写智能合约 编译转移智能合约 测试智能合约 创建用户界面连接智能合约 在浏览器中访问Dapp 搭建开发环境 Node.js v6+ LTS...

    Truffle 部署 编译 测试 智能合约 的 完整实践操作

    目标

    • 搭建开发环境
    • 创建一个Truffle项目
    • 编写智能合约
    • 编译转移智能合约
    • 测试智能合约
    • 创建用户界面连接智能合约
    • 在浏览器中访问Dapp

    搭建开发环境

    • Node.js v6+ LTS and npm (comes with Node)
    • Git

    这里配置脚本略过。。。。

    xiaoyu@LIXIAOYUdeMacBook-Pro.com➤ node -v
    v8.5.0
    
    xiaoyu@LIXIAOYUdeMacBook-Pro.com➤ npm -v
    5.4.2
    
    xiaoyu@LIXIAOYUdeMacBook-Pro.com➤ git --version
    git version 2.13.5 (Apple Git-94)
    xiaoyu@LIXIAOYUdeMacBook-Pro.com➤ npm install -g ethereumjs-testrpc
    /usr/local/bin/testrpc -> /usr/local/lib/n
    展开全文
  • 使用truffle编译和部署智能合约

    千次阅读 2018-03-26 22:52:15
    1、首先下载并且安装truffle客户端 npm install -g truffle truffle是一个以太坊智能合约开发框架2、创建一个truffle项目的根目录,以D:\truffle\truffle_java为例。打开cmd命令行工具,导航到truffle_java目录下。...
    1、首先下载并且安装truffle客户端 npm install -g truffle truffle是一个以太坊智能合约开发框架
    2、创建一个truffle项目的根目录,以D:\truffle\truffle_java为例。打开cmd命令行工具,导航到truffle_java目录下。执行truffle init命令。会在该目录下出现下面目录结构的文件:
    -comtracts
    --Migrations.sol
    -migrations
    --1_initial_migration.js
    -test
    -truffle.js
    -truffle-config.js
    3、编译智能合约
    我们在contracts文件夹下创建一个智能合约文件Test.sol,文件内容如下:
    pragma solidity ^0.4.17;
    contract Test {
    function multiply(uint a) public returns(uint) {
    return a * 7;
    }
    }
    保存之后,执行truffle compile命令,truffle会把contracts文件夹下的智能合约文件编译成json的格式保存在build\contracts文件夹下,这个文件夹是新生成的文件夹。
    truffle仅默认编译自上次编译后被修改过的文件,来减少不必要的编译,如果你想编译全部文件,可以使用--compile-all选项:truffle compile --compile-all
    4、配置truffle-config.js文件,由于truffle.js和truffle-config.js文件有冲突,所以我们需要把truffle.js文件删除,只使用truffle-config.js文件。(如果你在windows上操作,那就删除truffle.js,如果你在另一个系统上操作,删除其中一个或者同时保留他们,都不要紧。这样做的原因是,在windows上有一个命名问题,当我们想要执行truffle命令时,它会打开truffle.js配置文件而不是读取里面的数据)
    truffle-config.js内容如下:
    module.exports = {
    // See <http://truffleframework.com/docs/advanced/configuration>
    // to customize your Truffle configuration!
    rpc: {
    host: "localhost",
    port: 8545
    },
    networks: {
    development: {
    network_id: "*",
    host: "localhost",
    port: 8545
    }
    }
    };
    4、部署智能合约
    编写部署智能合约的js文件,在migrations文件夹下,该文件夹下有个默认的文件1_initial_migration.js,这是部署Migration.sol智能合约的,内容如下:
    var Migrations = artifacts.require("./Migrations.sol");
    module.exports = function(deployer) {
    deployer.deploy(Migrations);
    };
    如果我们有多个智能合约,只需要把对应的智能合约文件名加上去即可
    然后在命令行执行truffle migrate,就可以把智能合约部署到以太坊网络上去了。
    注意:truffle部署智能合约的默认账户是geth客户端的主账户,所以在部署之前要把主账户解锁之后才可以部署,并且部署的时候需要挖矿。
    展开全文
  • truffle部署智能合约In the early days of smart contract development (circa 2016) the way to go was to write smart contracts in your favorite text editor and deploy them by directly calling geth and ...

    truffle部署智能合约

    In the early days of smart contract development (circa 2016) the way to go was to write smart contracts in your favorite text editor and deploy them by directly calling geth and solc.

    智能合约开发的早期(大约在2016年),方法是在您喜欢的文本编辑器中编写智能合约,然后直接调用gethsolc

    The way to make this process a little bit more user friendly was to make bash scripts which could first compile and then deploy the contract … which was better, but still pretty rudimentary — the problem with scripting, of course, being the lack of standardization and the suboptimal experience of bash scripting.

    使该过程更加用户友好的方法是制作bash脚本,该脚本可以先编译然后部署合同……虽然更好,但仍然非常基本-脚本问题当然是缺乏标准化和兼容性。 bash脚本的次优体验。

    The answer came in two distinct flavors — Truffle and Embark — with Truffle being the more popular of the two (and the one we’ll be discussing in this article).

    答案来自两种不同的口味- 松露和Embark-松露在两种口味中更受欢迎(这也是我们将在本文中讨论的一种)。

    To understand the reasoning behind Truffle, we must understand the problems it’s trying to solve, which are detailed below.

    要了解Truffle背后的原因,我们必须了解其试图解决的问题,下面将对其进行详细介绍。

    Compilation Multiple versions of the solc compiler should be supported at the same time, with a clear indication which one is used.

    汇编多个版本solc编译器应该在同一时间得到支持,与一个使用明确的指示。

    Environments Contracts need to have development, integration and production environments, each with their own Ethereum node address, accounts, etc.

    环境合同需要具有开发,集成和生产环境,每个环境都具有自己的以太坊节点地址,账户等。

    Testing The contracts must be testable. The importance of testing software can’t be overstated. For smart contracts, the importance is infinitely more important. So. Test. Your. Contracts!

    测试合同必须是可测试的。 测试软件的重要性不可高估。 对于智能合约,重要性无限重要。 所以。 测试。 你的。 合同!

    Configuration Your development, integration and production environments should be encapsulated within a config file so they can be committed to git and reused by teammates.

    配置您的开发,集成和生产环境应封装在配置文件中,以便可以将它们提交给git并由队友重用。

    Web3js Integration Web3.js is a JavaScript framework for enabling easier communication with smart contracts from web apps. Truffle takes this a step further and enables the Web3.js interface from within the Truffle console, so you can call web functions while still in development mode, outside the browser.

    Web3js集成 Web3.js是一个JavaScript框架,用于实现与来自Web应用程序的智能合约更轻松的通信。 Truffle进一步迈出了一步,并在Truffle控制台中启用了Web3.js界面,因此您可以在仍处于开发模式下在浏览器外部调用Web函数。

    安装松露 (Installing Truffle)

    The best way to install Truffle is by using the Node Package Manager (npm). After setting up NPM on your computer, install Truffle by opening the terminal and typing this:

    安装Truffle的最佳方法是使用Node Package Manager(npm)。 在计算机上设置NPM后,通过打开终端并键入以下命令来安装Truffle:

    npm install -g truffle

    Note: the sudo prefix may be required on Linux machines.

    注意:Linux机器上可能需要sudo前缀。

    入门 (Getting Started)

    Once Truffle is installed, the best way to get a feel for how it works is to set up the Truffle demo project called “MetaCoin”.

    一旦安装了Truffle,了解其工作原理的最佳方法就是设置名为“ MetaCoin”的Truffle演示项目。

    Open the terminal app (literally Terminal on Linux and macOS, or Git Bash, Powershell, Cygwin or similar on Windows) and position yourself in the folder where you wish to initialize the project.

    打开终端应用程序(在Linux和macOS上为终端机,在Windows上为Git Bash,Powershell,Cygwin或类似产品),然后将自己置于要初始化项目的文件夹中。

    Then run the following:

    然后运行以下命令:

    mkdir MetaCoin
    cd MetaCoin
    truffle unbox metacoin

    You should see output like this:

    您应该看到如下输出:

    Downloading...
    Unpacking...
    Setting up...
    Unbox successful. Sweet!
    
    Commands:
    
      Compile contracts: truffle compile
      Migrate contracts: truffle migrate
      Test contracts:    truffle test

    If you get some errors, it could be that you’re using a different version of Truffle. The version this tutorial is written for is Truffle v4.1.5, but the instructions should stay relevant for at least a couple of versions.

    如果您遇到一些错误,则可能是您正在使用其他版本的Truffle。 本教程编写的版本是Truffle v4.1.5 ,但说明至少应与几个版本相关。

    松露项目结构 (The Truffle Project Structure)

    Your Truffle folder should look a little bit like this:

    您的Truffle文件夹应如下所示:

    .
    ├── contracts
    │   ├── ConvertLib.sol
    │   ├── MetaCoin.sol
    │   └── Migrations.sol
    ├── migrations
    │   ├── 1_initial_migration.js
    │   └── 2_deploy_contracts.js
    ├── test
    │   ├── TestMetacoin.sol
    │   └── metacoin.js
    ├── truffle-config.js
    └── truffle.js

    合同文件夹 (Contracts folder)

    This is the folder where you will put all of your smart contracts.

    这是您将所有智能合约放入的文件夹。

    In your contracts folder, there’s also a Migrations.sol file, which is a special file — but more about that in the following section.

    在您的Contracts文件夹中,还有一个Migrations.sol文件,这是一个特殊文件,但在下一节中将对此进行更多介绍。

    When Truffle compiles the project, it will go through the contracts folder and compile all the compatible files. For now, the most used files are Solidity files with the .sol extension.

    当Truffle编译项目时,它将通过contracts文件夹并编译所有兼容文件。 目前,最常用的文件是扩展名为.sol文件。

    In the future, this might transition to Vyper or SolidityX (both better for smart contract development, but less used for now).

    将来,这可能会过渡到Vyper或SolidityX(这两种方法对于智能合约开发都比较好,但现在很少使用)。

    迁移文件夹 (Migrations Folder)

    What is a truffle migration? In essence it’s a script which defines how the contracts will be deployed to the blockchain.

    什么是松露迁移? 本质上,它是一个脚本,用于定义如何将合同部署到区块链。

    为什么我们需要迁移? (Why do we need migrations?)

    As your project becomes more and more complex, the complexity of your deployments becomes more and more complex accordingly.

    随着项目变得越来越复杂,部署的复杂性也随之变得越来越复杂。

    Let’s take an example:

    让我们举个例子:

    • You have smart contracts One, Two and Three

      您有智能合约OneTwoThree

    • The smart contract Three contains a reference to the smart contract One and requires the address of contract Two in its constructor.

      智能合约Three包含对智能合约One的引用, 需要其构造函数中合约Two的地址。

    This example requires that contracts not only to be deployed sequentially, but also that they cross reference each other. Migrations, in a nutshell, enable us to automate this process.

    此示例要求合同不仅要按顺序部署,而且还需要相互参照。 简而言之,迁移使我们能够自动执行此过程。

    A rough overview of how you would do this would be as follows:

    有关如何执行此操作的概述如下:

    var One = artifacts.require("One");
    var Two = artifacts.require("Two");
    var Three = artifacts.require("Three");
    
    module.exports = function(deployer) {
      deployer.deploy(One).then(function() {
        deployer.deploy(Two).then(function() {
          deployer.deploy(Three, One.address);
        })
      });
    };

    Beyond that, migrations allow you to do a lot of other cool things like:

    除此之外,迁移还可以让您执行许多其他很酷的事情,例如:

    • set max gas for deployments

      设置部署的最大天然气
    • change the from address of deployments

      改变from部署的地址

    • deploy libraries

      部署库
    • call arbitrary contract functions

      调用任意合约功能

    初始迁移 (Initial migration)

    As you’ve noticed in your MetaCoin project, you have a file called 1_initial_migration.js. What this file does is deploy the Migrations.sol contract to the blockchain.

    正如您在MetaCoin项目中注意到的MetaCoin ,您有一个名为1_initial_migration.js的文件。 该文件的作用是将Migrations.sol合同部署到区块链。

    Usually you don’t have to do anything to this file once it’s initialized, so we won’t focus too much on this.

    通常,在初始化该文件后,您无需对其执行任何操作,因此我们不会对此进行过多关注。

    测试文件夹 (Test Folder)

    As I’ve said: YOU! MUST! TEST! SMART! CONTRACTS! No buts, no ifs, no maybes: you MUST do it.

    就像我说的:你! 必须! 测试! 聪明! 合同! 不,但是,如果,就不是:您必须这样做。

    But if you’re going to do it, it would be cool to have an automatic tool to enable you to do it seamlessly.

    但是,如果您要执行此操作,那么拥有一个自动工具来无缝执行该操作将很酷。

    Truffle enables this by having a built-in testing framework. It enables you to write tests either in Solidity or JavaScript.

    松露通过内置的测试框架来实现这一目标。 它使您可以使用Solidity或JavaScript编写测试。

    The examples in the MetaCoin project speak for themselves basically, so we won’t get too much into this.

    MetaCoin项目中的示例基本上可以说明一切,因此我们不会对此进行过多介绍。

    The key is, if you’re writing Solidity tests, you import your contracts into the tests with the Solidity import directive:

    关键是,如果要编写Solidity测试,则可以使用Solidity import指令将合同导入到测试中:

    import "../contracts/MetaCoin.sol";

    And if you’re writing them in JavaScript, you import them with the artifacts.require() helper function:

    如果您使用JavaScript编写它们,则可以使用artifacts.require()帮助函数导入它们:

    var MetaCoin = artifacts.require("./MetaCoin.sol");

    配置文件 (Configuration File)

    The configuration file is called either truffle.js or truffle-config.js. In most cases it’ll be called truffle.js, but the fallback is there because of weird command precedence rules on Windows machines.

    配置文件称为truffle.jstruffle.js truffle-config.js 。 在大多数情况下,其名称为truffle.js ,但由于Windows计算机上的命令优先级规则怪异,因此存在后备之处。

    Just know that, when you see truffle.js or truffle-config.js, they’re the same thing, basically. (Also, don’t use CMD on windows; PowerShell is significantly better.)

    只是知道,当您看到truffle.jstruffle.js truffle-config.js ,它们基本上是同一回事。 (此外,不要在Windows上使用CMD; PowerShell更好。)

    The config file defines a couple of things, detailed below.

    配置文件定义了几件事,下面将详细介绍。

    Environments Develop, TestNet, Live (Production). You can define the address of the Geth note, the network_id, max gas for deployment, the gas price you’re willing to pay.

    环境开发,TestNet,实时(生产)。 您可以定义Geth注释的地址, network_id ,可部署的最大天然气,您愿意支付的天然气价格。

    Project structure You can change where the files are built and located, but it isn’t necessary or even recommended.

    项目结构您可以更改文件的构建和位置,但这不是必需的,甚至也不建议这样做。

    Compiler version and settings Fix the solc version and set the -O (optimization) parameters.

    编译器版本和设置修复solc版本并设置-O (优化)参数。

    Package management

    包装管理

    • Truffle can work with EthPM (the Ethereum Package Manager), but it’s still very iffy.

      Truffle可以与EthPM(以太坊软件包管理器)一起使用,但是仍然很困难。
    • You can set up dependencies for EthPM to use in your Truffle project.

      您可以为EthPM设置依赖项以在Truffle项目中使用。

    Project description Who made the project, what is the project name, contact addresses etc.

    项目说明谁做项目,项目名称是什么,联系地址等。

    License Use GPLv3.

    许可证使用GPLv3

    运行代码 (Running the Code)

    In order to compile your contracts, run this:

    为了编译您的合同,请运行此:

    truffle compile

    In order to run migrations, you can just use this:

    为了运行迁移,您可以使用以下命令:

    truffle migrate

    Or you can do it by specifying an environment:

    或者,您可以通过指定环境来做到这一点:

    truffle migrate --network live

    In order to test your contracts run this:

    为了测试您的合同,请运行以下命令:

    truffle test

    Or you can run a specific test by running this:

    或者,您可以通过运行以下命令来运行特定的测试:

    truffle test ./path/to/FileTest.sol

    结论 (Conclusion)

    Truffle is a very handy tool that makes development in this brand new ecosystem a little easier. It aims to bring standards and common practices from the rest of the development world into a little corner of blockchain experimentation.

    松露是一种非常方便的工具,它使在这个全新的生态系统中的开发更加容易。 其目的是将来自开发领域其他部分的标准和通用实践带入区块链实验的一个小角落。

    This quick tutorial has demonstrated and explained the basics, but to truly understand Truffle, you’ll need to dive in deeper and experiment on actual projects. That’s what we’ll explore throughout SitePoint’s blockchain hub. We next take a look in a bit more detail at testing smart contracts and Truffle migrations.

    该快速教程已经演示并解释了基础知识,但是要真正理解Truffle,您需要更深入地研究实际项目。 这就是我们将在SitePoint的整个区块链中心中探索的内容。 接下来,我们将更详细地介绍测试智能合约Truffle迁移

    翻译自: https://www.sitepoint.com/truffle-introduction/

    truffle部署智能合约

    展开全文
  • 利用truffle框架部署智能合约

    千次阅读 2018-03-01 22:56:27
    2、安装truffle框架和testrpc测试环境:npm install -g ethereumjs-testrpc truffle,如果进度卡住,那么一般就是网络原因(墙),需要安装cnpm:npm install cnpm -g --registry=https://reg...

    本人开发环境为windows7,开发过程中遇到很多坑,特写此文给需要的人!
    1、安装node.js和atom编辑器
    2、安装truffle框架和testrpc测试环境:npm install -g ethereumjs-testrpc truffle,如果进度卡住,那么一般就是网络原因(墙),需要安装cnpm:npm install cnpm -g --registry=https://registry.npm.taobao.org
    安装好之后输入:cnpm install -g ethereumjs-testrpc truffle
    3、输入testrpc 来启动以太坊测试环境
    这里写图片描述

    可以看到testrpc启动后自动创建了10个账号和私钥,每个账号都有100个以太币
    4、刚才的终端不要关闭,再新打开一个终端,输入:mkdir abc 来新建一个abc文件夹,接着输入:cd abc 打开文件夹,输入:truffle init 来新建一个智能合约的项目,创建成功后的文件夹内容如图所示:
    这里写图片描述
    contracts文件夹用来存放智能合约文件,格式为.sol
    migrations文件夹用来存放部署文件,现在里面只有一个文件
    test文件夹用来存放测试文件
    注意:truffle更新后,创建出的文件已经和以前不同了,并没有metacoin这个demo了
    5、打开atom,打开abc文件夹
    这里写图片描述

    在文件夹contracts上右键,选择新建文件,输入文件名:hello.sol,写入以下内容:

    pragma solidity ^0.4.4;
     contract HelloWorld {
      function sayHello() returns (string) {
       return ("Hello World");
     }
    }

    6、点击truffle.js文件,输入以下内容:

    module.exports={
      networks:{
        development:{
          host:"localhost",
          port:8545,
          network_id:"*"//匹配任何netword id
        }
      }
    }

    7.点击migrations文件夹,右键新建文件,输入名称:2_initial_hello.js
    输入以下内容:

    var hello =
    artifacts.require("hello");
    
    module.exports
    = function(deployer) {
    
    deployer.deploy(hello);
    
    };

    8.现在打开终端,输入:truffle.cmd compile 进行编译
    这里写图片描述

    为什么输入的是truffle.cmd,别的教程都是truffle啊?因为这是windows系统,就是不一样~ 编译成功后,会新建一个build文件夹

    9.现在执行truffle.cmd migrate 进行部署
    这里写图片描述
    10、合约部署成功了,怎么和它互动呢?接着来,在终端输入:truffle console
    接着输入:hello.deployed().then(instance => contract = instance)
    然后输入:contract.sayHello.call()
    可以看到返回了一个字符串Hello World
    这说明什么?
    调用合约成功!

    展开全文
  • Truffle创建、编译、部署智能合约

    千次阅读 2018-06-20 11:43:34
    创建工程目录mkdir truffle_project cd truffle_project truffle init创建工程目录并初始化后,文件夹目录结构如下:▾ truffle-project/ ... ▾ migrations/ 用来存放部署/迁移智能合约的脚本文件...
  • contracts 就是智能合约存放的目录,默认情况下已经帮你创建好ConvertLib.sol MetaCoin.sol Migrations.sol合约,不用管它。 在contracts文件夹下创建一个新文件Test.sol,文件内容如下: pragma solidity ^...
  • 准备一个用来存放 truffle 环境的空文件夹也就是开发合约文件所放位置 新建完成后,在此文件夹 运行powershell(我使用cmd报错),输入 npm -g install truffle 全局安装 truffle 然后输入 truffle init 会在此...
  • 前面我们介绍了以太坊私有链的搭建以及多节点私有链网络,这次我们介绍如何使用truffle框架来部署编译智能合约到我们之前搭建的私有链网络中。 搭建环境及需使用的工具:ubuntu18.04Truffle v5.0.18 geth1.8.27...
  • Truffle 智能合约测试及单元测试 测试主要指标: 1.合约交易 Gas 消耗量测试 2.合约运行时间测试 这里一共有两个合约,网上找的,内容如下: pragma solidity >=0.4.21 <0.7.0; contract Counter { uint ...
  • Infura是一个托管的以太坊节点集群,可以将你编写的以太坊智能合约部署到infura提供的节点上,而无需自己搭建以太坊节点。 https://infura.io/ 2.安装HDWalletProvider Infura的HDWalletProvider是一个独立的npm...
  • truffle是一个智能合约的开发框架,具体的就不介绍了,我们主要是说说怎么使用这个框架来进行智能合约的开发,官网戳这里。 安装 创建项目 编译合约 部署 部署到geth 部署到truffle的内建测试网络 部署...
  • truffle部署智能合约

    2020-01-29 16:47:18
    truffle unbox react 下载项目 修改truffle-config.js const path = require("path"); module.exports = { // See <http://truffleframework.com/docs/advanced/configuration> // to customize your...
  • 不能部署migrate通过Tunffle编译的以太坊智能合约。我是这么做的: truffle init truffle compile open other terminal and run testrpc truffle migrate 前三步都正常过了,当我运行truffle migrate时,出现了...
  • Truffle 智能合约开发

    2018-07-27 11:43:07
    智能合约 开发工具 下载Atom CTRL+,打开配置管理 安装插件 linter-solium autocomplete-solidity...Truffle 智能合约开发 安装 $ npm install -g ethereumjs-testrpc truffle 启动 $ testrpc Ethe...
  • 本文分步骤讲解了以太坊开发框架Truffle从入门到实战。
  • 智能合约学习 truffle编译问题

    千次阅读 2018-10-28 15:49:40
    再重复truffle develop ---> compile.问题解决!!! Q2:compile时提示 Warning: No visibility specified. Defaulting to "public".   function test() pure returns (string) {  ^ (Relevant ...
  • 之前可能因为网络的原因,在truffle各种初始化编译合成智能合约都遇到了好多问题,如今再次尝试,发现可以很快入门。 下面来看看如何通过truffle与ganache-cli来构建以太坊合约。 以太坊工具链就不多介绍了,这...
  • node -v v8.9.3 npm -v 5.5.1 第二步:安装Truffle框架 sudo npm install -g truffle 通过以下命令验证truffle框架是否安装成功: truffle version 第三步:使用truffle进行智能合约的开发 (1)初始化一个 Truffle ...
  • 为以太坊编写,编译和部署智能合约。 精选 演示版 创建一个具有初始供应量的硬币并将金额发送到您的以太坊钱包地址 注意:此演示是在该项目使用Angular2时进行的。 此后,它已升级到Angular4,并且工作方式完全...
  • truffle compile
  • 智能合约编译后产生的build文件夹下有合约对应json文件,会有abi接口,调用abi接口间接调用合约。 Remix IDE内置EVM虚拟机,可以支持部署到测试网络,以UI形式显示了abi接口可以供用户直接使用。 truffle.js中...
  • truffle (ETH以太坊智能合约集成开发工具) 入门教程 前言 在你了解区块链开发之前,你有必要了解区块链的一些基础知识,什么是DApp,DApp与传统app的区别, 什么是以太坊,以太坊中的智能合约是什么,智能...
  • ChainSkills松露盒 遵循ChainSkills提供的课程,此松露盒具有创建DApp所需的全部 。 此盒子来自 。... 智能合约更改必须手动重新编译和迁移。 // Serves the front-end on http://localhost:3000 npm run dev
  • 与传统的集中式软件开发一样,在智能合约的开发生命周期中,漏洞会蔓延到智能合约开发人员的代码中。虽然智能合约可能存在错误,但仍有“Etherillion”...Truffle旨在通过为智能合约开发提供开发环境、测试框架和调...
  • 使用truffle框架部署并测试以太坊智能合约 文章目录使用truffle框架部署并测试以太坊智能合约安装solidity编译器Mac下安装安装 nodeMac下安装安装 truffleMac下安装安装 ganache使用truffle官方示例合约进行测试1. ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,707
精华内容 682
关键字:

truffle编译智能合约