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 EOSdocker pull eosio/eos-dev#Create local networkdocker 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 installationdocker logs --tail 10 nodeosand 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 bashand once in the container, on bash, execute this:cleos --wallet-url http://127.0.0.1:9876 wallet list keysShould show empty wallets:Wallets: []#Check 'nodeos' end points - run this out side containerscurl 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 eosdevcheck 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 binariesbrew tap eosio/eosiobrew install eosio#Step 2: Setup a development directory, stick to it.mkdir contractscd contracts#Step 3: Install CDT. The EOSIO Contract Development Toolkit, CDT for shortbrew tap eosio/eosio.cdtbrew 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 keyscleos wallet list#List wallet keys if anycleos wallet list key#you should see all empty response#create wallet nowcleos wallet createCreating wallet: default"PW5JYR5u7WTk6RaJARE41qb3Wy6BJtcKCjpDAyjR2uV3CWF8nDFe7"this will create wallet with name 'default'. Keep note of password it returns.#Create new keyscleos create key --to-consolePrivate key: 5JseP8pEsJfAEWix5U6ow77TrKu2uuBhjfobyzgYyCYAtnxnCk8Public 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 contractcleos create accountcleos create account eosio eosio.token EOS5ySgzeHp9G7TqNDGpyzaCtahAeRcTvPRPJbFey5CmySL3vKYgE EOS5ySgzeHp9G7TqNDGpyzaCtahAeRcTvPRPJbFey5CmySL3vKYgEyou 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.tokenyou 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 Tokencleos push action eosio.token create '["eosio", "10000000000.0000 EOS",0,0,0]' -p eosio.tokenyou 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 eosioyou 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 completedcleos get transaction 73f72879d220c720fcefb16b6aaf3db0ba492bd62020853b2cd5051557d5fa87andcleos get transaction 566693cba0b0d5d11d85e40cdfb095d525612c5915e17ce75d309054e1912235you should have long JSON response. It simply means above steps are successful.#Check balance now of eosio accountcleos get currency balance eosio.token eosioyou would see:1000000000.0000 EOS
你去了,现在你已经创建了token,eosio
帐户有很多EOS token,他现在可以轻松地将资金发送到其他帐户。
#Create a new accountcleos create account eosio user1#Check if account is created. You should have json responsecleos get account user1#Send money to user1 accountcleos transfer eosio user1 "1000.00 EOS"#Check the balance of user1cleos get currency balance eosio.token vijay1
仅此而已!
以上就是关于"EOS区块链怎么开发使用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。