在处理项目时,用Java Connector for EOS区块链编写:

创建钱包

创建帐户

创建交易

创建签名交易

在帐户之间转移代币

我遇到了各种和运行本地EOS节点需要遵循的基本步骤。这个小指南纯粹是为了帮助你启动和运行自己的EOS节点。几天的内容和图片汇编了我的阅读和理解。

本指南不解释什么是区块链,这是特定的,以尽快开始使用EOS并减少麻烦。纯粹基于经验。

EOS区块链概述

EOSIO附带了许多程序。你将使用的主要部分以及此处涉及的部分是:

nodeos(node + eos = nodeos) ,可以使用插件配置以运行节点的核心EOSIO节点守护程序。示例用法是块生产,专用API端点和本地开发。

cleos(cli + eos = cleos) ,命令行界面,用于与区块链交互并管理钱包。

keosd(key + eos = keosd) ,将EOSIO密钥安全存储在钱包中的组件。

eosio-cpp(eosio.cdt的一部分) ,它将C ++代码编译为WASM并可以生成ABI(CDT是合约开发工具链)。

这些组件之间的基本关系如下图所示。

最新堆栈版本(截至本文编写日)

nodeos:1.5.0

cleos:1.5.0

keosd:1.5.0

eosio.cdt:1.4.1

eosio.contracts:1.4.0

安装本地节点

有几种方法可以做到:

1.使用Docker,快速简便。

2.使用二进制文件,它也行。

使用Docker安装

You create 2 containers. One for 'nodeos' and another for 'keosd'

#Pull latest docker image of EOS

docker pull eosio/eos-dev

#Create local network

docker network create eosdev

#Start nodeos(Core Daemon)

docker run --name nodeos -d -p 8888:8888 --network eosdev -v /tmp/eosio/work:/work \

-v /tmp/eosio/data:/mnt/dev/data -v /tmp/eosio/config:/mnt/dev/config eosio/eos-dev \

/bin/bash -c "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 \

-d /mnt/dev/data --config-dir /mnt/dev/config --http-server-address=0.0.0.0:8888 \

--access-control-allow-origin=* --contracts-console --http-validate-host=false"

###### NOTES about above Command

- Creating a docker container running 'nodeos' daemon

- Exposing port 8888 so that you can access the 'nodeos' using RPC and HTTP

- Mounting few directories on your local machine so that you don't have to login into container

- Few plugins which will allow this node to become a producer, expose rpc api over http, exposing command line interface to run 'nodeos' commands

#Run keosd(Wallet and Keystore)

docker run -d --name keosd --network=eosdev -i eosio/eos-dev /bin/bash \

-c "keosd --http-server-address=0.0.0.0:9876"

#Check installation

docker logs --tail 10 nodeos

and you will see something like:

info 2018-12-04T15:01:22.003 thread-0 producer_plugin.cpp:1494 produce_block ] Produced block 00005ce7fabcbcf8... #23783 @ 2018-12-04T15:01:22.000 signed by eosio [trxs: 0, lib: 23782, confirmed: 0]

info 2018-12-04T15:01:22.507 thread-0 producer_plugin.cpp:1494 produce_block ] Produced block 00005ce84867bcbf... #23784 @ 2018-12-04T15:01:22.500 signed by eosio [trxs: 0, lib: 23783, confirmed: 0]

info 2018-12-04T15:01:23.005 thread-0 producer_plugin.cpp:1494 produce_block ] Produced block 00005ce936ca4869... #23785 @ 2018-12-04T15:01:23.000 signed by eosio [trxs: 0, lib: 23784, confirmed: 0]

i

#Check Wallets (Open bash for keosd)

docker exec -it keosd bash

and once in the container, on bash, execute this:

cleos --wallet-url http://127.0.0.1:9876 wallet list keys

Should show empty wallets:

Wallets: []

#Check 'nodeos' end points - run this out side containers

curl http://localhost:8888/v1/chain/get_info

{

"server_version":"549c96cd",

"chain_id":"cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f",

"head_block_num":24182,

"last_irreversible_block_num":24181,

"last_irreversible_block_id":"00005e751a1e31b15acd25ffc8725cb2c67926647edb89e726e386716afdef5d",

"head_block_id":"00005e76fd035dbf694d2a575bb1849f436428b466fd95323e43619b73bf7b9d",

"head_block_time":"2018-12-04T15:04:41.500",

"head_block_producer":"eosio",

"virtual_block_cpu_limit":200000000,

"virtual_block_net_limit":1048576000,

"block_cpu_limit":199900,

"block_net_limit":1048576,

"server_version_string":"v1.5.0-rc2"

}

#Alias cleos so that you can access it by simply 'cleos'

docker network inspect eosdev

check for keosd IP address in the response of above command and execute the following:

alias cleos='docker exec -it nodeos /opt/eosio/bin/cleos --url http://127.0.0.1:8888 --wallet-url http://172.18.0.3:9876'

使用二进制文件安装 - MAC指令

#Step 1: Install binaries

brew tap eosio/eosio

brew install eosio

#Step 2: Setup a development directory, stick to it.

mkdir contracts

cd contracts

#Step 3: Install CDT. The EOSIO Contract Development Toolkit, CDT for short

brew tap eosio/eosio.cdt

brew install eosio.cdt

#Boot Node and Wallet

#Start keosd: keosd &

#Start nodeos:

nodeos -e -p eosio \

--plugin eosio::producer_plugin --plugin eosio::chain_api_plugin --plugin eosio::http_plugin --plugin eosio::history_plugin --plugin eosio::history_api_plugin \

-d /Users/vijay/eos_blockchain/contracts/eosio/data \

--config-dir /Users/vijay/eos_blockchain/contracts/eosio/config \

'--access-control-allow-origin=*' --contracts-console

--http-validate-host=false '--filter-on=*' >> nodeos.log 2>&1 &

#Check installation (in current directory)

tail -f nodeos.log

#Check the wallet

cleos wallet list

#Check nodeos endpoints

curl http://localhost:8888/v1/chain/get_info

上述步骤之一将帮助你设置和运行本地节点。

使用钱包,帐户和密钥

现在你准备好在区块链上做一些事情。在EOS中,你必须拥有一个帐户才能执行任何操作,例如创建token,发送token,接收token,编写交易等。此节点将有一个名为eosio的系统用户,因此你可以使用此用户来玩eos区块链。

因此,在本节中,我们将在本地节点上执行以下操作:

创建一个新钱包。

创建新密钥(私人+公共)。

将这些钥匙导入钱包。

建立新帐户。

让我们运行一些命令并观察你所看到的。只需阅读所有命令的注释,即可了解它们的作用。

#List existing wallets. Wallet stores keys

cleos wallet list

#List wallet keys if any

cleos wallet list key

#you should see all empty response

#create wallet now

cleos wallet create

Creating wallet: default

"PW5JYR5u7WTk6RaJARE41qb3Wy6BJtcKCjpDAyjR2uV3CWF8nDFe7"

this will create wallet with name 'default'. Keep note of password it returns.

#Create new keys

cleos create key --to-console

Private key: 5JseP8pEsJfAEWix5U6ow77TrKu2uuBhjfobyzgYyCYAtnxnCk8

Public key: EOS4tmc8ufENZNkFQaj8ZfV9UfeRLnyaCecybSgPS1U8671BNdSxD

#Import the private keys in wallet

cleos wallet import -n quant --private-key 5JseP8pEsJfAEWix5U6ow77TrKu2uuBhjfobyzgYyCYAtnxnCk8

#### MOST IMPORTANT STEP ####

Import genesis 'eosio' account keys in the wallet so that eosio account is available for creating new accounts.

Private key of eosio: 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

在这个阶段,你已准备好带有eosio(创世纪帐户)的钱包和导入的新密钥。所以我们现在准备好做更多的操作了。

我们将在下一节中执行以下操作:

部署token合约,以便区块链准备好创建新的token。

创建新token。

将新token分配给创世帐户(eosio)。

在用户之间转移token。

检查余额等。

#Deploy Token Contacts

create an account first with the name 'eosio.token' for the contract

cleos create account

cleos create account eosio eosio.token EOS5ySgzeHp9G7TqNDGpyzaCtahAeRcTvPRPJbFey5CmySL3vKYgE EOS5ySgzeHp9G7TqNDGpyzaCtahAeRcTvPRPJbFey5CmySL3vKYgE

you would see something like this:

executed transaction: 4a8b53ae6fa5e22ded33b50079e45550e39f3cb72ffa628e771ea21758844039 200 bytes 339 us # eosio <= eosio::newaccount {"creator":"eosio","name":"eosio.token","owner":{"threshold":1,"keys":[{"key":"EOS5ySgzeHp9G7TqNDGpy...

Deploy contract now:

cleos set contract eosio.token /contracts/eosio.token -p eosio.token

you would see something like this:

Reading WAST/WASM from /opt/eosio/bin/data-dir/contracts/eosio.token/eosio.token.wasm... Using already assembled WASM... Publishing contract... executed transaction: 41677b5fd5c701ca67a153abb09f79c04085cc51a9d021436e7ee5afda1781bd 8048 bytes 1212 us # eosio <= eosio::setcode {"account":"eosio.token","vmtype":0,"vmversion":0,"code":"0061736d01000000017f1560037f7e7f0060057f7e... # eosio <= eosio::setabi {"account":"eosio.token","abi":"0e656f73696f3a3a6162692f312e30010c6163636f756e745f6e616d65046e616d65...

#Create new Token

cleos push action eosio.token create '["eosio", "10000000000.0000 EOS",0,0,0]' -p eosio.token

you would see like this:

executed transaction: 566693cba0b0d5d11d85e40cdfb095d525612c5915e17ce75d309054e1912235 120 bytes 552 us # eosio.token <= eosio.token::create {"issuer":"eosio","maximum_supply":"10000000000.0000 EOS"}

#Send newly created Tokens (EOS) to genesis account (eosio)

cleos push action eosio.token issue '["eosio","1000000000.0000 EOS", "issue"]' -p eosio

you would see something like this:

executed transaction: 73f72879d220c720fcefb16b6aaf3db0ba492bd62020853b2cd5051557d5fa87 128 bytes 677 us # eosio.token <= eosio.token::issue {"to":"eosio","quantity":"1000000000.0000 EOS","memo":"issue"}

#Check above transactions if they are completed

cleos get transaction 73f72879d220c720fcefb16b6aaf3db0ba492bd62020853b2cd5051557d5fa87

and

cleos get transaction 566693cba0b0d5d11d85e40cdfb095d525612c5915e17ce75d309054e1912235

you should have long JSON response. It simply means above steps are successful.

#Check balance now of eosio account

cleos get currency balance eosio.token eosio

you would see:

1000000000.0000 EOS

你去了,现在你已经创建了token,eosio帐户有很多EOS token,他现在可以轻松地将资金发送到其他帐户。

#Create a new account

cleos create account eosio user1

#Check if account is created. You should have json response

cleos get account user1

#Send money to user1 account

cleos transfer eosio user1 "1000.00 EOS"

#Check the balance of user1

cleos get currency balance eosio.token vijay1

仅此而已!

分享两个EOS区块链相关的交互式在线编程实战教程:

EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。

深入浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。

汇智网原创翻译,转载请标明出处。这里是网友第一次开发EOS区块链的经验

eos区块链 java客户端_分享一个网友第一次开发EOS区块链总结的经验相关推荐

  1. 分享网友第一次开发EOS区块链总结的经验

    在处理项目时,用Java Connector for EOS区块链编写: 创建钱包 创建帐户 创建交易 创建签名交易 在帐户之间转移代币 我遇到了各种和运行本地EOS节点需要遵循的基本步骤.这个小指南 ...

  2. eos区块链 java客户端_在EOS区块链上使用EOSJS和scatter开发dApp

    由于我一直在深入研究EOS dApp的开发,我看了不少好文章.在这里,我汇总了下做一些研究后得到的所有知识.在本文中,我将解释如何使用EOSJS和scatter.我假设你对智能合约以及如何在EOS区块 ...

  3. mac redis 客户端_分享一个免费好用的Redis桌面客户端

    今天波波为做开发的朋友们分享一个免费好用的Redis桌面客户端.这个工具纯属机缘巧合下发现的,前几天波波在开发一个物联网平台,硬件通信部分用了Workman Gateway来负责通信和消息推送,结果因 ...

  4. 第一次开发EOS区块链的经验总结

    在处理项目时,用Java Connector for EOS区块链编写: 创建钱包 创建帐户 创建交易 创建签名交易 在帐户之间转移代币 我遇到了各种和运行本地EOS节点需要遵循的基本步骤.这个小指南 ...

  5. 第一次开发EOS区块链的经验

    在处理项目时,用Java Connector for EOS区块链编写: 创建钱包 创建帐户 创建交易 创建签名交易 在帐户之间转移代币 我遇到了各种和运行本地EOS节点需要遵循的基本步骤.这个小指南 ...

  6. 视频教程-企业微信支付JAVA版_向员工收款-微信开发

    企业微信支付JAVA版_向员工收款 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信息 ...

  7. vc++6.0获取磁盘基本信息_分享一个实用脚本--一键获取linux内存、cpu、磁盘IO等信息...

    概述 今天主要分享一个shell脚本,用来获取linux系统CPU.内存.磁盘IO等信息. 脚本 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`ifconfig | grep i ...

  8. 编写一个弹出式菜单的shell程序_分享一个有趣的shell脚本--实现抓阄程序

    概述 今天主要分享一个有趣的shell脚本,用来实现抓阄,平时就不用剪刀石头布了. 需求 使用shell编写一个抓阄的程序: 1.执行脚本后,输入英文名字全拼,产生随机数01-99之间的数字,数字越大 ...

  9. mysql数据库新建一个递增的_分享一个mysql实验—基于数据库事务隔离级别RR及RC的测试...

    概述 今天主要分享一个最近做的实验,主要是测试mysql数据库在RR和RC不同事务隔离级别下的表现. MySQL使用可重复读来作为默认隔离级别的主要原因是语句级的Binlog.RR能提供SQL语句的写 ...

最新文章

  1. python里的类与一切事物都是对象
  2. codevs 1373 射命丸文
  3. Python常用模块之random模块
  4. oracle rac常用的网络检查命令
  5. 虚拟化概述及VMware VSphere介绍(一)
  6. jzoj4020-Revolution【网络流,最小割】
  7. Spring的AOP-AspectJ注解方式
  8. 华科计算机复试考什么,华科计算机复试的机试
  9. 网页左右怎么划分_UI基础汇总——网页设计规范
  10. Jenkins 文档特别兴趣小组
  11. 运行的程序暂停_黄岩人注意!2天后,这项重要业务系统将暂停运行!
  12. 金蝶k3服务端显示服务器不是有效的,金蝶k3远程服务器设置
  13. laravel的elixir和gulp用来对前端施工
  14. uniapp微信小程序登陆方法
  15. Qt编写自定义控件68-IP地址输入框
  16. IDEA去掉Performing Code Analysis,Check TODO
  17. 大数据 - MapReduce编程案例 -BH3
  18. redis——从零开始
  19. IBM小型机特性简介
  20. 2021年哪些办公软件比较好用?

热门文章

  1. linux之lsv—NAT配置
  2. Invalid hook call. Hooks can only be called inside of the body of a function
  3. 使用React,Twilio和Cosmic JS构建约会调度程序
  4. 正则表达式匹配中英文姓名
  5. 网站URL如何SEO优化
  6. TCP三次握手四次挥手
  7. Vue+Element表格动态列+表格分页
  8. python中hub_Python中文社区名称的统一
  9. Rocky Linux Yum源替换位上海交大镜像站点
  10. 旅行青蛙分析(Android篇)