新手教程 EOS 安装本地环境,并实现发币转账等功能

skyhuihui · 2018年04月22日 · 最后由 junjun16818 回复于 2018年05月07日 · 3313 次阅读
本帖已被设为精华帖!

第一步:很重要:买个服务器或者装个虚拟机,推荐用linux服务器 注意:由于国内网络环境原因,建议使用国外服务器搭建。

下面为环境搭建过程

首先保证你服务器安装有git,没有自行百度安装

001 获取代码 克隆EOS存储库及子模块

git clone https://github.com/EOSIO/eos --recursive

002 安装EOSIO 这里我们使用自动构建脚本安装:

cd eos

./eosio_build.sh 询问是否安装这些包,输入1确认。安装开始。中间大概运行两个小时左右,根据服务器性能判断,可放下电脑做其他的

003 运行系统 首先,需要运行mongod数据库,然后运行test,测试一下,操作如下

~/opt/mongodb/bin/mongod -f ~/opt/mongodb/mongod.conf &

然后运行test

cd build

make test

我在运行test测试时和运行mongod数据库是发现了错误,需要验证大概32项,其中8项运行失败。(原因未知,但最终我在测试失败的情况下依然良好的完成了安装和转账,在完成后,回来再次测试,依然是8运行失败。当然后续我会排查失败原因。)

004 安装可执行文件

cd build

sudo make install

005 创建单一测试节点

cd build/programs/nodeos

nodeos

这时候会报错正常的 这时候需要修改config.ini,config.ini位于这个目录下

cd ~/.local/share/eosio/nodeos/config

Enable production on a stale chain, since a single-node test chain is pretty much always stale

enable-stale-production = true

Enable block production with the testnet producers

producer-name = eosio

Load the block producer plugin, so you can produce blocks

plugin = eosio::producer_plugin

Wallet plugin

plugin = eosio::wallet_api_plugin

As well as API and HTTP plugins

plugin = eosio::chain_api_plugin

plugin = eosio::http_plugin

This will be used by the validation step below, to view account history

plugin = eosio::account_history_api_plugin

贴上去以后 注意缩进,排列。需要注释 文件上放已存在的enable-stale-production = false,这个如果文件上方不存在就不需要注释plugin = eosio::chain_api_plugin

这时候我们尝试启动一个单一测试节点:

cd build/programs/nodeos

nodeos

运行成功。

006 “货币”合同演练

在演练中,我们会尝试建立两个账户currency和eosio,然后发行一种叫做MGD(随意名称,因为我在发行此名称时候出错,可能是因为币已存在)的代币,然后尝试一次转账操作,最后再查询余额,确定转账成功。

所有的操作,都是基于cleos完成的。

首先我们需要保持nodeos的运行。

然后,用下面的命令创建一个钱包。

cd build/programs/cleos

./cleos wallet create

正常情况下会创建一个钱包,还会展示私钥。

加载BIOS合约(注意要到/eos/build/programs/cleos目录下操作)

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

为货币合约创建一个账户currency,首先生成两组key,分别对应OwnerKey和ActiveKey

在cleos目录下:生成的key做好备份,两个key每一个都会有公钥私钥,分别备份

./cleos create key # OwnerKey

./cleos create key # ActiveKey

然后,将key导入到钱包,import 后的代码不执行

./cleos wallet import (导入OwnerKey的私钥)

./cleos wallet import (导入ActiveKey的私钥)

接下来,用cleos create account命令,创建账户currency导入两个公钥,空格隔开currency 后的代码替换成生成的两个公钥

./cleos create account eosio currency

我们使用 get account命令,看以下currency是否已经创建成功:

./cleos get account currency

接下来,将示例货币合约上传至区块链

在上传合约前,确认一下当前合约还未创建 返回的code hash如果全是0就没创建

./cleos get code currency

使用货币账户上传样本货币合约,响应包含一个transaction_id的JSON,代表合同上传成功

./cleos set contract currency ../../contracts/currency

接下来,可以再试一次,看看是否成功:

./cleos get code currency

然后就是发币的环节,要先创造货币,这一步,之前版本是没有的

cleos push action currency create '{"issuer":"currency", "maximum_supply": "1000000000.0000 CUR", "can_freeze": 1, "can_recall": 1, "can_whitelist": 1}' -p currency@active

然后在发行货币

./cleos push action currency issue '{"to":"currency","quantity":"1000.0000 CUR","memo":""}' --permission currency@active

还有一个坑,就是获取账号信息的时候,这里文档写的是这个样子的

./cleos get table currency currency account

然而实际使用是这个:

./cleos get table currency currency accounts

下面我们使用currency合约来转移资金:

这个命令现实发送到货币合约的转账操作,将20.0000 MGD从货币账户转移到eosio账户

./cleos push action currency transfer'{"from":"currency","to":"eosio","quantity":"20.0000 MGD","memo":"my first transfer"}'--permission currency@active

上面代码一起执行

来看一下余额的变化

./cleos get table currency eosio accounts //eosio 账户

./cleos get table currency currency accounts currency 账户

接下来,要做的就是合约的开发使用。由于不知道eos开发支持什么语言要先去了解更多eos基础

下面贴出 eos官方文档,和官方 wiki,和官方代码,和eos的中文社区,和eos浏览器

https://eosio.github.io/eos/

https://github.com/EOSIO/eos/wiki

https://github.com/EOSIO/eos

https://eosfans.io/

https://eostracker.io/producers

共收到 21 条回复

注意上面黑色字体特别大的,再粘贴进去的时候,要用# 注释掉

skyhuihui 回复

编辑器是支持markdown的, 建议优化下格式.

strahe 将本帖设为了精华贴 04月22日 13:59

咱们这个是开发者电报群吗

strahe 回复

好的下次注意

eos2018 回复

是一个EOS社区,这边文章讲的是EOS的本地环境安装,并且实现发币转账的工鞥呢

楼主你好,config.ini在哪个目录下

谢谢,我这种新手正好需要这个教程。

apple 回复

蚊帐里有写 cd ~/.local/share/eosio/nodeos/config

moncy0905 回复

共同学习😄

skyhuihui 回复

楼主是linux环境,mac下没有这个路径

apple 回复

/Users/用户名/Library/Application' 'Support/eosio/nodeos/config 查查是不是在这里

13楼 已删除

还需要解锁账户啊,刚才在创造货币那卡了很久

apple 回复

linux-ubuntu : ~/.local/share/eosio/nodeos/config mac osx : ~/Library/Application\ Support/eosio/nodeos/config

楼主你好,我按照你的说法在docker里走了一遍,现在卡壳在你的这一步 原始报错是: 这里不是很明白什么意思!

我安装报错呀,Error compiling CMAKE. Exiting now

babula 回复

同问

babula 回复

先看看语句执行成功没

没发现eosio这个账户在哪里创建的

前面都成功了,最后转账这一步有个错误

chuanhui 回复

./cleos push action currency transfer '{"from":"currency","to":"eosio","quantity":"100.0000 CUR","memo":"y first transfer"}' --permission currency@active -j

./cleos set contract currency ../../contracts/currency

这句话报错呀?

好像currency下缺少文件?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册