• 以太坊智能合约开发工具 Truffle 入门1


    Truffle是以太坊(Ethereum)智能合约开发的瑞士军刀,小巧好用,上手简单。

    本篇文章主要展示如何用Truffle 开发第一个Ethereum智能合约。

    1.准备工作:(本人针对window环境,如果是mac 或linux可以自行搜索其他教程)

    a.安装git bash :http://gitforwindows.org/

    b.安装npm:https://jingyan.baidu.com/article/a17d528506d7f58098c8f2b0.html

    2.安装Truffle。

    按照Truffle的官网指示:http://truffleframework.com/docs/getting_started/installation

    在git bash命令行输入如下 命令:

    npm install -g truffle
    3.开发智能合约

    安装完好,运行:
    mkdir simple-storage
    cd simple-storage


    然后运行:
    truffle init

    这个命令会建立 两个目录:
    contracts/migrations/

    其中contracts/ 是智能合约所在的目录,而 migrations/是把合约部暑到以太坊的
    相关命令。

    打开 目录:contracts/ ,创建一个新文件: Store.sol,文件内容如下 :
    pragma solidity ^0.4.17;
    
    contract SimpleStorage {
      uint myVariable;
    
      function set(uint x) public {
        myVariable = x;
      }
    
      function get() constant public returns (uint) {
        return myVariable;
      }
    }

    打开目录:migrations/ ,创建一个文件 2_deploy_contracts.js,内容如下 :
    var SimpleStorage = artifacts.require("SimpleStorage");
    
    module.exports = function(deployer) {
      deployer.deploy(SimpleStorage);
    };

    保存好。

    回到命令行,运行命令:
    truffle compile
    打开另一个git bash 窗口进入相同目录,运行:
    truffle develop
    然后运行:
    migrate
    窗口会出现如下信息:

    Running migration: 1_initial_migration.js
       Replacing Migrations...
       ... 0xe4f911d95904c808a81f28de1e70a377968608348b627a66efa60077a900fb4c
       Migrations: 0x3ed10fd31b3fbb2c262e6ab074dd3c684b8aa06b
     Saving successful migration to network...
       ... 0x429a40ee574664a48753a33ea0c103fc78c5ca7750961d567d518ff7a31eefda
     Saving artifacts...
     Running migration: 2_deploy_contracts.js
       Replacing SimpleStorage...
       ... 0x6783341ba67d5c0415daa647513771f14cb8a3103cc5c15dab61e86a7ab0cfd2
       SimpleStorage: 0x377bbcae5327695b32a1784e0e13bedc8e078c9c
     Saving successful migration to network...
       ... 0x6e25158c01a403d33079db641cb4d46b6245fd2e9196093d9e5984e45d64a866
     Saving artifacts...
    

    继续在truffle develop窗口运行如下 代码:

    SimpleStorage.deployed().then(function(instance){return instance.get.call();}).then(function(value){return value.toNumber()});
    这条命令结果如下
    0

    继续在truffle develop窗口运行如下代码:

    SimpleStorage.deployed().then(function(instance){return instance.set(4);});

    这是会出现如下信息:

     { tx: '0x7f799ad56584199db36bd617b77cc1d825ff18714e80da9d2d5a0a9fff5b4d42',
       receipt:
        { transactionHash: '0x7f799ad56584199db36bd617b77cc1d825ff18714e80da9d2d5a0a9fff5b4d42',
          transactionIndex: 0,
          blockHash: '0x60adbf0523622dc1be52c627f37644ce0a343c8e7c8955b34c5a592da7d7c651',
          blockNumber: 5,
          gasUsed: 41577,
          cumulativeGasUsed: 41577,
          contractAddress: null,
          logs: [] },
       logs: [] }
    


    这里的tx是交易的ID,可能你窗口显示的ID会不一样。
    这里说明,你的交易成功,帐本已经成功设置为4.

    好,现在我们来验证下,运行如下 命令:

    SimpleStorage.deployed().then(function(instance){return instance.get.call();}).then(function(value){return value.toNumber()});


    结果返回为:


    4



    成功了!


    你已经学会开发智能合约!

    恭喜你!!!!!

    工作与合作,请加微信/qq:360369487



     







    本人精通java高并发,DDD,微服务等技术实践,专注java,rust技术栈。 本人姓名郭莹城,坐标深圳,前IBM架构师、咨询师、敏捷开发技术教练,前IBM区块链研究小组成员、十多年架构设计工作经验,《区块链核心技术与应用》作者之一, 现聚焦于:区块链创投与交易所资源对接和技术咨询。 工作微信&QQ:360369487,区块链创投与交易所资源对接,加我注明:博客园+对接,技术咨询和顾问,加我注明:博客园+顾问。想学习golang和rust的同学,也可以加我微信,备注:博客园+golang或博客园+rust,谢谢!
  • 相关阅读:
    排序之选择排序
    排序之冒泡排序
    NOIP 模拟 $22; m d$
    NOIP 模拟 $20; m z$
    NOIP 模拟 $20; m y$
    NOIP 模拟 $20; m 玩具$
    NOIP 模拟 $21; m Median$
    NOIP 模拟 $21; m Park$
    NOIP 模拟 $21; m Game$
    NOIP 模拟 $19; m w$
  • 原文地址:https://www.cnblogs.com/gyc567/p/8298104.html
Copyright © 2020-2023  润新知