美文网首页
2020-10-09

2020-10-09

作者: 逝者如斯夫不舍昼夜L | 来源:发表于2020-10-09 19:25 被阅读0次

EOS特性

eos提供不同区块链应用都需要的一些共同的功能和模块

方便在eos上迅速开发自己的应用

eos处理交易的规模比以太坊高出几个量级,tps达1-10万

拥有eos代币的比例分配eos网络的带宽、存储和运算资源

EOS智能合约开发

以太坊的智能合约可以移植到EOS

mac或者linux可以直接部署节点,windows系统需要先安装虚拟机,通过linux镜像部署节点,通过c++编写合约,通过命令行部署和调用智能合约

EOS私链搭建

1、clang v6.0.0 or later安装(sudo apt-get install clang)

2、CMake安装(sudo snap install cmake)

3、EOSIO v1.7.0版本安装(wget https://github.com/EOSIO/eos/releases/download/v1.7.0/eosio_1.7.0-1-ubuntu-18.04_amd64.deb

./eosio_1.7.0–1-ubuntu-18.04_amd64.deb

4、EOSIO.CDT v1.5.0安装(wget https://github.com/EOSIO/eosio.cdt/releases/download/v1.5.0/eosio.cdt_1.5.0-1_amd64.deb

./eosio.cdt_1.5.0–1_amd64.deb

5、EOSIO.Contracts v1.6.0安装(wget https://github.com/EOSIO/eosio.contracts/archive/v1.6.0.zip

unzip v1.6.0.zip

mv eosio.contracts-1.6.0 contracts

)(如果没有安装解压就先安装解压sudo apt-get install unzip)

6、服务器节点配置(Ubuntu 18.04 LTS OS, 16GB of RAM, 4 vCPUs and 30GB of HDD.)(亚马逊云服务器https://aws.amazon.com/cn/free/?sc_channel=PS&sc_campaign=acquisition_CN&sc_publisher=baidu&sc_medium=bz&sc_content=pc&sc_detail=HL&sc_category=pc&sc_segment=test&sc_country=CN&trkCampaign=request_for_pilot_account&trk=baidu-ppc-test&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc)

前置环境安装完成后,创建三个实例节点

7、创建开发钱包,用于存储公钥和私钥(cleos wallet create --name=YOUR_WALLET_NAME --to-console)

8、创建文件夹bootbios(mkdir bootbios

cd bootbios

mkdir genesis

9、创建genesis.json文件(vim genesis.json)("initial_timestamp": "2018-12-05T08:55:11.000",

  "initial_key": "EOS_PUB_DEV_KEY",

  "initial_configuration": {

    "max_block_net_usage": 1048576,

    "target_block_net_usage_pct": 1000,

    "max_transaction_net_usage": 524288,

    "base_per_transaction_net_usage": 12,

    "net_usage_leeway": 500,

    "context_free_discount_net_usage_num": 20,

    "context_free_discount_net_usage_den": 100,

    "max_block_cpu_usage": 100000,

    "target_block_cpu_usage_pct": 500,

    "max_transaction_cpu_usage": 50000,

    "min_transaction_cpu_usage": 100,

    "max_transaction_lifetime": 3600,

    "deferred_trx_expiration_window": 600,

    "max_transaction_delay": 3888000,

    "max_inline_action_size": 4096,

    "max_inline_action_depth": 4,

    "max_authority_depth": 6

  },

  "initial_chain_id": "0000000000000000000000000000000000000000000000000000000000000000"

10、创建公钥私钥,并复制公钥替换9、中的EOS_PUB_DEV_KEY(cleos create key --to-console)

11、查看钱包状态(cleos wallet list)(cleos wallet unlock)(cleos wallet unlock --name=YOUR_WALLET_NAME)

12、导出公钥(cleos wallet import --name=YOUR_WALLET_NAME --private-key)

13、完成第10步

14、创建三个文件(touch genesis_start.sh

touch clean.sh

touch stop.sh

15、设置三个文件的执行权限(sudo chmod +x *.sh)

16、genesis_start.sh中粘贴如下内容(#!/bin/bash

DATADIR="./blockchain"

if [ ! -d $DATADIR ]; then

mkdir -p $DATADIR;

fi

nodeos \

--genesis-json $DATADIR"/../../genesis.json" \

--signature-provider EOS_PUB_DEV_KEY=KEY:EOS_PRIV_DEV_KEY \

--plugin eosio::producer_plugin \

--plugin eosio::chain_api_plugin \

--plugin eosio::http_plugin \

--plugin eosio::history_api_plugin \

--plugin eosio::history_plugin \

--data-dir $DATADIR"/data" \

--blocks-dir $DATADIR"/blocks" \

--config-dir $DATADIR"/config" \

--producer-name YOUR_PRODUCER_NAME \

--http-server-address 0.0.0.0:8888 \

--p2p-listen-endpoint 0.0.0.0:4444 \

--access-control-allow-origin=* \

--contracts-console \

--http-validate-host=false \

--verbose-http-errors \

--enable-stale-production \

--p2p-peer-address INSTANCE2_IP:4444 \

--p2p-peer-address INSTANCE3_IP:4444 \

>> $DATADIR"/nodeos.log" 2>&1 & \

echo $! > $DATADIR"/eosd.pid"

)(EOS_PUB_DEV_KEY用公钥替换,

EOS_PRIV_DEV_KEY用私钥替换

如果有多个节点,对多个节点进行如上一致操作

17、拷贝genesis_start.sh(cp genesis_start.sh start.sh)(删除start.sh中的--genesis-json $DATADIR"/../../genesis.json" \这一行)

18、stop.sh中粘贴如下内容(#!/bin/bash

DATADIR="./blockchain/"

if [ -f $DATADIR"/eosd.pid" ]; then

pid=`cat $DATADIR"/eosd.pid"`

echo $pid

kill $pid

rm -r $DATADIR"/eosd.pid"

echo -ne "Stoping Node"

while true; do

[ ! -d "/proc/$pid/fd" ] && break

echo -ne "."

sleep 1

done

echo -ne "\rNode Stopped. \n"

fi

19、clean.sh中粘贴如下内容(#!/bin/bash

rm -fr blockchain

ls -al

20、启动传世文件并查看(./genesis_start.sh

ls -l

21、进入文件夹(cd blockchain)查看文件(tail -f nodeos.log)

22、需要以下的系统账户(eosio.bpay

eosio.msig

eosio.names

eosio.ram

eosio.ramfee

eosio.saving

eosio.stake

eosio.token

eosio.vpay

eosio.rex

23、创建公钥私钥(cleos create key --to-console)

24、将key导入钱包(cleos wallet import --private-key)输入私钥(private key: imported private key for: YOUR_PUB_KEY)

25、创建eosio.bpay账户(cleos create account eosio eosio.bpay YOUR_PUB_KEY)

26、重复以上23-25的步骤创建22步骤中的账户

27、创建智能合约,可能需要30-40分钟(cd

cd contracts

./build.sh -e /usr/opt/eosio/1.7.0 -c /usr/opt/eosio.cdt/1.5.0

pwd

28、设置合约目录地址CONTRACTS_PATH,并创建合约(cleos set contract eosio.token YOUR_PATH/build/contracts/eosio.token/)

29、创建另外一个eosio.msig 合约(cleos set contract eosio.msig YOUR_PATH/build/eosio.msig/)

30、创建代币ECNUCoin,总发行量为10 billion(cleos push action eosio.token create '[ "eosio", "10000000000.0000 ECNUCoin" ]' -p eosio.token@active)

31、分配代币(cleos push action eosio.token issue '[ "eosio", "1000000000.0000 ECNUCoin", "memo" ]' -p eosio@active)

32、创建eosio.system合约(cleos set contract eosio YOUR_PATH/build/eosio.system/)

33、给eosio.msig授权(cleos push action eosio setpriv '["eosio.msig", 1]' -p eosio@active)

34、初始化系统账户(cleos push action eosio init '["0", "4,SYS"]' -p eosio@active)

第一个实例节点处理完毕,开始处理第二个节点

35、创建如实例节点1的文件结构(mkdir bootbios

cd bootbios

mkdir genesis

36、在bootbios文件中创建genesis.json文件(vim genesis.json)({

  "initial_timestamp": "2018-12-05T08:55:11.000",

  "initial_key": "EOS_PUB_DEV_KEY",

  "initial_configuration": {

    "max_block_net_usage": 1048576,

    "target_block_net_usage_pct": 1000,

    "max_transaction_net_usage": 524288,

    "base_per_transaction_net_usage": 12,

    "net_usage_leeway": 500,

    "context_free_discount_net_usage_num": 20,

    "context_free_discount_net_usage_den": 100,

    "max_block_cpu_usage": 100000,

    "target_block_cpu_usage_pct": 500,

    "max_transaction_cpu_usage": 50000,

    "min_transaction_cpu_usage": 100,

    "max_transaction_lifetime": 3600,

    "deferred_trx_expiration_window": 600,

    "max_transaction_delay": 3888000,

    "max_inline_action_size": 4096,

    "max_inline_action_depth": 4,

    "max_authority_depth": 6

  },

  "initial_chain_id": "0000000000000000000000000000000000000000000000000000000000000000"

}

37、进入genesis目录 (cd genesis)创建文件(touch genesis_start.sh

touch stop.sh

touch clean.sh

38、修改以上文件的执行权限(sudo chmod +x *.pem)

39、将以下内容拷贝至genesis_start.sh(#!/bin/bash

DATADIR="./blockchain"

if [ ! -d $DATADIR ]; then

mkdir -p $DATADIR;

fi

nodeos \

--genesis-json $DATADIR"/../../genesis.json" \

--signature-provider EOS_PUB_DEV_KEY=KEY:EOS_PRIV_DEV_KEY \

--plugin eosio::producer_plugin \

--plugin eosio::chain_api_plugin \

--plugin eosio::http_plugin \

--plugin eosio::history_api_plugin \

--plugin eosio::history_plugin \

--data-dir $DATADIR"/data" \

--blocks-dir $DATADIR"/blocks" \

--config-dir $DATADIR"/config" \

--producer-name YOUR_PRODUCER_NAME \

--http-server-address 0.0.0.0:8888 \

--p2p-listen-endpoint 0.0.0.0:4444 \

--access-control-allow-origin=* \

--contracts-console \

--http-validate-host=false \

--verbose-http-errors \

--enable-stale-production \

--p2p-peer-address INSTANCE1_IP:4444 \

--p2p-peer-address INSTANCE3_IP:4444 \

>> $DATADIR"/nodeos.log" 2>&1 & \

echo $! > $DATADIR"/eosd.pid"

40、创建公钥私钥(cleos create key --to-console)替换39中的“EOS_PUB_DEV_KEY”, “EOS_PRIV_DEV_KEY”

41、拷贝genesis_start.sh到start.sh(cp genesis_start.sh start.sh)

42、删除start.sh文件中的这一行(--genesis-json $DATADIR"/../../genesis.json" \)

43、拷贝其他实例中的stop.sh和clean.sh到这个节点

44、执行(./genesis_start.sh)(此时节点将会被创建,查看tail -f blockchain/nodeos.log)

45、第三个节点如上操作即可

46、

相关文章

  • 《2020科幻稿、科幻小说投稿指南》2020-10-09更新

    《2020科幻稿、科幻小说投稿指南》2020-10-09更新

  • 头回上电视

    河北卫视《哈喽伙计》 http://www.hebtv.com/tv/hbws/hlhj/2020-10-09/B...

  • 爸爸,对不起!

    我怎么如此幸运-重生42-戴红霞(2020-10-09) 我怎么如此幸运-爸爸,对不起! 1.我怎么如此幸运(⊙o...

  • 大数据的乱用!终究我要把你告上法庭

    原创 洞观世界 2020-10-09 15:35:56 众所周知,当你在某个APP里查看一类新闻,或是卖货的APP...

  • 羡慕你还在上班…

    中原焦点团队 成长分享821天 2020-10-09 昨天,和姐姐一块逛商场,我们边逛边聊。 我说:时间过的真快,...

  • 先有立足之地,方能论自由

    2020-10-09 必先有立足之地,温饱能养活自己,方能论自由。 我一直觉得自己活了这么些年,是在做梦,梦醒了,...

  • 该不该信任我的孩子?!

    2020-10-09 该不该信任我的孩子?!我一直在这个问题里徘徊和犹疑。 没遇到事儿的时候,觉得该信任;遇到事儿...

  • 2020-10-09

    ☯️ 易学常识集锦☯: 1、人们何以哭天喊地?何以称为老天爷?何以称为大地母亲? 答曰:因为八卦之乾坤为天地、为父...

  • 2020-10-09

    赠刘景文 宋 苏轼 荷尽已无擎雨盖 菊残犹有傲霜枝 一年好景君须记 最是橙黄橘绿时

  • 2020-10-09

    脸型下巴突出的削剪技巧 今天给大家讲讲脸型下巴突出的削剪技巧,由北京辉艺美发学校的周宗龙老师讲解。 下巴向前突出的...

网友评论

      本文标题:2020-10-09

      本文链接:https://www.haomeiwen.com/subject/tkclpktx.html