如何使用docker和docker-compose在EOS本地Testnet上开发

栏目: 编程工具 · 发布时间: 5年前

内容简介:EOS区块链的开发并不是立竿见影的,因为需要一些非显而易见的组件,需要对它们进行配置和协同工作。要学习本教程,你需要使用下面的软件:

EOS区块链的开发并不是立竿见影的,因为需要一些非显而易见的组件,需要对它们进行配置和协同工作。

  • nodeos:块生成器守护程序。
  • keosd:钱包守护进程,存储私钥。
  • eosio-cpp:智能合约编译器。
  • eosio.token:平台的参考标记。
  • cleos:用于与EOS区块链远程交互的CLI。
  • scatter:为本地Testnet配置的EOS钱包。

如何使用 <a href='https://www.codercto.com/topics/20577.html'>docker</a> 和docker-compose在EOS本地Testnet上开发

我将学到什么?

  • 如何运行和初始化EOS本地Testnet。
  • 如何编译和运行EOS智能合约。
  • 如何通过cleos进行EOS交易。

要求

要学习本教程,你需要使用下面的软件:

  • Ubuntu Linux(推荐)
  • docker/docker-compose

困难程度

  • 中间

教程内容

  • Dockerfile(你需要的软件)
  • docker-compose.yml(该软件应该如何运行)
  • cleos,命令行EOS钱包。
  • 部署eosio.token,即EOS货币系统智能合约。
  • Dockerfile(你需要的软件)。

你可以直接在 Linux 操作系统上安装以下组件,但这样可以使你的开发环境更加干净,更易于维护和测试。

以下所有文件均为官方文件,并由EOSIO发布:

FROM ubuntu:18.04

RUN apt-get update && apt-get install -y curl libicu60 libusb-1.0-0 libcurl3-gnutls

RUN curl -LO https://github.com/EOSIO/eos/releases/download/v1.7.0/eosio_1.7.0-1-ubuntu-18.04_amd64.deb \
    && dpkg -i eosio_1.7.0-1-ubuntu-18.04_amd64.deb

RUN curl -LO https://github.com/EOSIO/eosio.cdt/releases/download/v1.6.1/eosio.cdt_1.6.1-1_amd64.deb \
    && dpkg -i eosio.cdt_1.6.1-1_amd64.deb

RUN curl -LO https://github.com/EOSIO/eosio.cdt/archive/v1.6.1.tar.gz && tar -xvzf v1.6.1.tar.gz --one-top-level=eosio.cdt --strip-components 1

RUN cd /eosio.cdt/ && curl -LO https://github.com/EOSIO/eosio.contracts/archive/v1.6.0-rc3.tar.gz && tar -xvzf v1.6.0-rc3.tar.gz --one-top-level=eosio.contracts --strip-components 1

你可以使用以下命令生成打包的镜像沙箱:

docker build -t my/eos .

docker-compose.yml(该软件应该如何运行)

正如我所说,需要一些配置来互相讨论所需的所有部分。

default.wallet
config.ini
version: '3'

services:

  nodeos:
    container_name: nodeos
    image: my/eos
    command: nodeos -e -p eosio --plugin eosio::producer_plugin --plugin eosio::history_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --plugin eosio::http_plugin --http-server-address=0.0.0.0:8888 --access-control-allow-origin=* --contracts-console --http-validate-host=false --filter-on="*"
    stop_grace_period: 3m0s
    volumes:
      - ./:/eosio.cdt/contract
      - ./config.ini:/root/.local/share/eosio/nodeos/config/config.ini
    ports:
      - '8888:8888'
      - '9830:9876'
    depends_on:
      - keosd

  keosd:
    container_name: keosd
    hostname: keosd
    image: my/eos
    command: keosd --http-server-address=0.0.0.0:8901 --http-validate-host 0 --verbose-http-errors --unlock-timeout=9999999
    volumes:
      - ./default.wallet:/root/eosio-wallet/default.wallet
    expose:
      - 8901
    ports:
      - '8901:8901'

运行

在新终端中运行以下命令:

docker-compose up

如何使用docker和docker-compose在EOS本地Testnet上开发

恭喜!你正在EOS Localnet中生成块!

初始化的乐趣尚未结束,因为你仍需要部署智能合约以获得EOS token货币!

cleos,命令行EOS钱包。

好的,EOS区块链正在运行,但现在我们需要另一个终端与它进行交互。

alias cleos="docker exec -it nodeos cleos --url http://127.0.0.1:8888 --wallet-url http://keosd:8901"

cleos get info
{
  "server_version": "686f0deb",
  "chain_id": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f",
  "head_block_num": 85,
  "last_irreversible_block_num": 84,
  "last_irreversible_block_id": "000000541c75df656485edb9fb71e898db933c78f685fc7a8d883544d141350d",
  "head_block_id": "0000005580f8983a211e4dcddbb783d6bc962726ef271beeee54b63bd906b5a0",
  "head_block_time": "2019-03-30T09:37:33.500",
  "head_block_producer": "eosio",
  "virtual_block_cpu_limit": 217493,
  "virtual_block_net_limit": 1140464,
  "block_cpu_limit": 199900,
  "block_net_limit": 1048576,
  "server_version_string": "v1.7.0"
}

正如你在输出中看到的,最新的块是85,而chain_is是testnet中使用的块。

部署eosio.token,即EOS货币系统智能合约

目前没有EOS token,所以让我们添加它们,

编译它们:

docker exec -it nodeos  bash -c "cd /eosio.cdt/eosio.contracts/contracts/ &&  eosio-cpp -I eosio.token/include/ -abigen -o eosio.token/src/eosio.token.wasm eosio.token/src/eosio.token.cpp"

创建 eosio.token 帐户并发布智能合约:

cleos create account eosio eosio.token EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
executed transaction: d196c673f38085e34815900dd47de8ba030d14ed9d7311a1a173df131281e66a  200 bytes  2568 us
#         eosio <= eosio::newaccount            {"creator":"eosio","name":"eosio.token","owner":{"threshold":1,"keys":[{"key":"EOS6MRyAjQq8ud7hVNYcf...
warning: transaction executed locally, but may not be confirmed by the network yet         ]

cleos set contract eosio.token /eosio.cdt/eosio.contracts/contracts/eosio.token/src eosio.token.wasm eosio.token.abi -p eosio.token@active
Reading WASM from /eosio.cdt/eosio.contracts/contracts/eosio.token/src/eosio.token.wasm...
Publishing contract...
executed transaction: 1b4b532337035ad4cd985d1cb63c844b84671ed574251a85519fc51c8fb4f290  9592 bytes  10523 us
#         eosio <= eosio::setcode               {"account":"eosio.token","vmtype":0,"vmversion":0,"code":"0061736d0100000001bb011f60000060037f7e7f00...
#         eosio <= eosio::setabi                {"account":"eosio.token","abi":"0e656f73696f3a3a6162692f312e310008076163636f756e7400010762616c616e63...
warning: transaction executed locally, but may not be confirmed by the network yet         ]

创建你的testuser帐户,并给自己一些免费的钱!:D

cleos create account eosio testuser EOS6K42yrrMETmx2rXFJeKtaGrQAwgCDBYUVY7PGCVfhWFykqvhVR EOS6K42yrrMETmx2rXFJeKtaGrQAwgCDBYUVY7PGCVfhWFykqvhVR
cleos push action eosio.token create '[ "eosio", "1000000000.0000 EOS"]' -p eosio.token@active
cleos push action eosio.token issue '[ "testuser", "100000.0000 EOS", "m" ]' -p eosio@active

恭喜你,现在你是富翁了!

cleos get currency balance eosio.token testuser
100000.0000 EOS

cleos get table eosio.token testuser accounts
{
  "rows": [{
      "balance": "100000.0000 EOS"
    }
  ],
  "more": false
}

你的第一笔交易:

cleos push action eosio.token transfer '["testuser","eosio.token","10.0000 EOS",
  "BUY LAMBOOO!!!"]' -p testuser@active

cleos get currency balance eosio.token testuser
99990.0000 EOS

正如你在购买lambo后所看到的那样,EOS余额已经减少了,你使用了testuser权限来实现它。

每次初始化EOS区块链时,所有这些清除步骤都可以自动,分组和顺序执行。

结论

我们已经简要介绍了如何使用docker和一些基本测试来设置本地EOS Testnet。 cleosdocker 的美妙之处在于我们可以在几分钟内自动化AD,拥有一个干净的新工作EOS环境。所有命令都不需要手动执行,我们可以将它们放在自定义 bootstrap.sh 中,以便在需要时重新创建所需的环境。

======================================================================

分享一些比特币、以太坊、EOS等区块链相关的交互式在线编程实战教程:

  • EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • 深入浅出玩转EOS钱包开发 ,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在 Java 代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在 Php 代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对 python 工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、 mongodb 、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • Hyperledger Fabric 区块链开发详解 ,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、通道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
  • Hyperledger Fabric java 区块链开发详解 ,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、频道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
  • tendermint区块链开发详解 ,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是 go 语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是 如何使用docker和docker-compose在EOS本地Testnet上开发


以上所述就是小编给大家介绍的《如何使用docker和docker-compose在EOS本地Testnet上开发》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Web Designer's Idea Book

The Web Designer's Idea Book

Patrick Mcneil / How / 2008-10-6 / USD 25.00

The Web Designer's Idea Book includes more than 700 websites arranged thematically, so you can find inspiration for layout, color, style and more. Author Patrick McNeil has cataloged more than 5,000 s......一起来看看 《The Web Designer's Idea Book》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具