真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

區(qū)塊鏈的EOS環(huán)境怎么搭建

今天小編給大家分享一下區(qū)塊鏈的EOS環(huán)境怎么搭建的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、大田ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的大田網(wǎng)站制作公司

EOSIO總體框架

EOSIO有多個(gè)程序模塊組成,經(jīng)常會(huì)用到的有以下三個(gè)模塊:

  • nodeos - EOSIO核心模塊,用于啟動(dòng)eosio服務(wù),在后臺(tái)運(yùn)行,啟動(dòng)時(shí)可以添加多種插件plugin。

  • cleos - 命令行界面錢(qián)包工具,見(jiàn)《EOS命令行界面錢(qián)包》(https://github.com/eoshackathon/eos_dapp_development_cn/blob/master/docs/eos_command_line_wallet.md),位于eos/build/programs/cleos/cleos

  • keosd - 管理錢(qián)包的各種組件,默認(rèn)情況下,keosd將隨cleos一起啟動(dòng)。位于eos/build/programs/keosd

下圖是上面三個(gè)工具的關(guān)系:

區(qū)塊鏈的EOS環(huán)境怎么搭建

另外,還有智能合約的編譯工具eosiocpp。

EOS系統(tǒng)中錢(qián)包,密鑰對(duì),賬號(hào),智能合約的關(guān)系

相對(duì)其他區(qū)塊鏈公鏈,EOS系統(tǒng)的組合關(guān)系比較自由,也帶來(lái)了理解上的困難。輝哥結(jié)合自己的理解,以中國(guó)大地上人們最關(guān)系的房子為例,做比喻介紹。

1) 錢(qián)包是土豪房東

土豪可以有很多的房子和各種開(kāi)門(mén)的鑰匙。上海這個(gè)城市有很多個(gè)土豪房東,所以一個(gè)節(jié)點(diǎn)可以創(chuàng)建多個(gè)錢(qián)包。

cleos wallet create ${參數(shù)}

2)鑰匙用來(lái)打開(kāi)房東門(mén)的。

鑰匙分為私鑰和公鑰。公鑰是別人可以看到的,例如下面圖片是土豪家的橙色鑰匙包,是專(zhuān)門(mén)用來(lái)存放仁恒濱江的大平層房子鑰匙的,私鑰是鑰匙包里面實(shí)際開(kāi)門(mén)的鑰匙。

你拿到鑰匙包沒(méi)有用的,你得拿到鑰匙盒里面的私鑰才可以打開(kāi)土豪家房子大門(mén)。

土豪房東可以把很多的房子配成一樣的鎖,用一對(duì)公鑰/私鑰來(lái)開(kāi)門(mén),也可以不同的房子不同的鑰匙。

cleos wallet import ${參數(shù)} 私鑰

3) 賬戶(hù)是房子

房東可以給多個(gè)房子配一對(duì)鑰匙(鑰匙包和鑰匙),也可以不同房子配不同鑰匙。

另外,一個(gè)房子可以用2把鑰匙打開(kāi),一把是owner鑰匙對(duì),一把是active鑰匙對(duì)。

房子的owner鑰匙地址表示為房東的公鑰,表示主人產(chǎn)權(quán)歸屬,用它對(duì)應(yīng)的私鑰可以打開(kāi)房子,這個(gè)鑰匙包是房東連小姨子也不會(huì)給的;

房子的active鑰匙對(duì)表示為房客的公鑰,表示該用戶(hù)的私鑰可以打開(kāi)房子,房子出租后,房東就把這個(gè)鑰匙包給租客了;

cleos create account 節(jié)點(diǎn) 賬戶(hù)名 Owner的公鑰 Active的公鑰。

搭建實(shí)操

搭建實(shí)操的流程圖如下。

區(qū)塊鏈的EOS環(huán)境怎么搭建

4. 1 啟動(dòng)私鏈

1) 啟動(dòng)keosd

keosd --http-server-address=127.0.0.1:8900

命令行界面錢(qián)包程序?yàn)?keosd,位于 eos/build/programs/keosd 路徑下,用于存儲(chǔ)交易簽名的私鑰。keosd在本地節(jié)點(diǎn)上運(yùn)行,并將私鑰保存在本地節(jié)點(diǎn)上。

默認(rèn)情況下,keosd會(huì)在目錄 ~/eosio-wallet 中生成一個(gè)基礎(chǔ)的配置文件 config.ini。該配置文件中的wallet-dir指定了錢(qián)包文件存放目錄。

另外,在運(yùn)行命令行錢(qián)包時(shí),可通過(guò)配置命令行參數(shù) --config-dir指定config.ini配置文件的目錄。該配置文件中保存用于接入http鏈接的服務(wù)器配置http-server-address參數(shù),以及其他用于資源共享的配置參數(shù)。

默認(rèn)情況下,keosd將錢(qián)包文件保存在 ~/eosio-wallet 目錄下,錢(qián)包文件名為:.wallet。例如,默認(rèn)錢(qián)包文件名為 default.wallet。當(dāng)建立了其他錢(qián)包后,在該目錄下會(huì)分別建立每個(gè)錢(qián)包文件,例如當(dāng)建立了一個(gè)名稱(chēng)為"duncanwang"的錢(qián)包,會(huì)生成一個(gè)錢(qián)包文件duncanwang.wallet。錢(qián)包文件可以通過(guò)命令行參數(shù)--data-dir存放在指定的目錄中。

**【預(yù)警】**從V1.0.5開(kāi)始,發(fā)現(xiàn)要先運(yùn)行keosd后在運(yùn)行nodeos才可以創(chuàng)建錢(qián)包。

成功輸出結(jié)果如下:

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

(復(fù)制代碼點(diǎn)擊“閱讀原文”)

2) 啟動(dòng)私鏈

在新的命令行窗口輸入以下命令。

cd ~/eos/build/programs/nodeos ./nodeos -e -p eosio  --plugin eosio::wallet_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --replay-blockchain

在啟動(dòng)nodeos時(shí),需要添加參數(shù)eosio::wallet_plugin,否則的話(huà),每次節(jié)點(diǎn)重啟,之前創(chuàng)建的錢(qián)包,賬號(hào)都不會(huì)加載進(jìn)來(lái)。

--replay-blockchain表示清除數(shù)據(jù)庫(kù)內(nèi)鏈的狀態(tài),重新運(yùn)行,它會(huì)導(dǎo)致重新啟動(dòng)時(shí)先讀取之前的區(qū)塊進(jìn)行加載。

【注意】 節(jié)點(diǎn)關(guān)閉后,錢(qián)包將會(huì)被加鎖。重新啟動(dòng)nodeos后,需要使用unlock命令解鎖錢(qián)包。

例如:

duncanwang@duncanwang:~/eos$ cleos wallet unlock -n duncanwang

password: Unlocked: duncanwang

輸入nodes -help可以看到所有參數(shù)的幫助說(shuō)明。

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

區(qū)塊鏈的EOS環(huán)境怎么搭建

4.2 創(chuàng)建錢(qián)包

cleos wallet create -n duncanwang

創(chuàng)建duncanwang錢(qián)包成功,輸出結(jié)果如下:

duncanwang@duncanwang:~/eos$ cleos wallet create -n duncanwang

Creating wallet: duncanwang

Save password to use in the future to unlock this wallet.

Without password imported keys will not be retrievable.

"PW5JMZdES2Cds5LsPRUBRo2THEXpbFSM17Xmcd2XWG7XBd49wveTo"

【結(jié)果確認(rèn)】

duncanwang@duncanwang:~$ cleos wallet list

Wallets:

[

  "duncanwang *"

]

duanwang錢(qián)包已存在了,*表示該賬號(hào)已解鎖。

【問(wèn)題1】 創(chuàng)建錢(qián)包重名,但是cleos wallet list看不到

duncanwang@duncanwang:~$ cleos wallet create -n duncanwang

Error 3120001: Wallet already exists Try to use different wallet name.

【解決方法】

這個(gè)主要是運(yùn)行的命令中沒(méi)有導(dǎo)入錢(qián)包--plugin eosio::wallet_plugin這個(gè)參數(shù),導(dǎo)致已創(chuàng)建錢(qián)包未加載,但是目錄下存在已創(chuàng)建的錢(qián)包文件。

./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --replay-blockchain

~/eosio-wallet 目錄下刪除文件duncanwang.wallet即可重新創(chuàng)建。

**【問(wèn)題2】**重啟節(jié)點(diǎn)后,cleos wallet list發(fā)現(xiàn)已創(chuàng)建的錢(qián)包等不存在。

duncanwang@duncanwang:~$ cleos wallet list

Wallets:

[
]

【解決方法1】

運(yùn)行./nodeos命令時(shí)要帶參數(shù)--plugin eosio::wallet_plugin

【解決方法2】

后來(lái)發(fā)現(xiàn)這種方法有時(shí)也是不可行,cleos wallet list沒(méi)有看到錢(qián)包。 采用命令'cleos wallet open -n duncanwang'打開(kāi)錢(qián)包后,就正常加載進(jìn)來(lái)了。

**【問(wèn)題3】**創(chuàng)建錢(qián)包時(shí)提示keosd已運(yùn)行,并且無(wú)法連接

duncanwang@duncanwang:~$ cleos wallet create -n duncanwang

"/usr/local/bin/keosd" launched

Unable to connect to keosd, if keosd is running please kill the process and try again.

【解決方法】

需要輸入以下命令把keosd重啟下。

ps -ef | grep keosd kill -9 pid keosd --http-server-address=127.0.0.1:8900

操作實(shí)例如下:

duncanwang@duncanwang:~$ ps -ef | grep keosd

duncanw+  2439     1  0 07:14 pts/1    00:00:00 /usr/local/bin/keosd --http-server-address=::1:8900

duncanw+  2441  2389  0 07:16 pts/1    00:00:00 grep --color=auto keosd

duncanwang@duncanwang:~$ kill -9 2439

4.3 錢(qián)包導(dǎo)入系統(tǒng)賬號(hào)私鑰

1) 找到eosio的系統(tǒng)賬號(hào)的默認(rèn)公鑰/私鑰對(duì)

找到配置文件,例如以下地址,~/.local/share/eosio/nodeosconfig 的 config.ini,默認(rèn)的私鑰/公鑰是一樣的。

#signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcvpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

2),錢(qián)包導(dǎo)入系統(tǒng)賬號(hào)私鑰

> cleos wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 -n duncanwang

duncanwang@duncanwang:~/eos$ cleos wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 -n duncanwang

imported private key for: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

3),查看系統(tǒng)賬號(hào)信息

以下命令可以查看eosio系統(tǒng)賬號(hào)的密鑰和資源占用情況。

> cleos get account eosio

duncanwang@duncanwang:~/eos/build$ cleos get account eosio

privileged: true

permissions:

      owner     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

        active     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

memory:

      quota:       unlimited  used:     60.75 KiB

  net bandwidth:

      used:               unlimited

     available:          unlimited

     limit:              unlimited

cpu bandwidth:

     used:               unlimited

     available:          unlimited

     limit:              unlimited

4.4  加載Bios合約

現(xiàn)在我們有一個(gè)錢(qián)包,并且加載了eosio帳戶(hù)的密鑰,我們可以設(shè)置一個(gè)默認(rèn)的系統(tǒng)合約。為了開(kāi)發(fā)的目的,可以使用默認(rèn)的eosio.bios合約。通過(guò)此合約,您可以直接控制其他帳戶(hù)的資源分配,并調(diào)用其他特權(quán)API。在公開(kāi)區(qū)塊鏈中,這個(gè)系統(tǒng)合約將管理其他賬戶(hù)的 token 抵押和解抵押操作,以為合約執(zhí)行預(yù)留CPU、網(wǎng)絡(luò)活動(dòng)帶寬,以及預(yù)留內(nèi)存。

eosio.bios合約可以在你的EOSIO源代碼文件夾中找到:contracts/eosio.bios。下面的命令序列,都假定是在EOSIO源代碼的根目錄執(zhí)行。但是您可以通過(guò)指定完整路徑,從任意位置執(zhí)行這個(gè)命令:${EOSIO_SOURCE}/build/contracts/eosio.bios。

這個(gè)命令序列的結(jié)果是,cleos發(fā)起一個(gè)包含兩個(gè)操作(actions)的交易(transaction):eosio::setcode和eosio::setabi。

代碼定義了合約如何運(yùn)行,abi描述了參數(shù)如何在二進(jìn)制和json表示之間進(jìn)行轉(zhuǎn)換。雖然abi在技術(shù)上是可選的,但為了便于使用,所有的EOSIO工具都依賴(lài)于它。

輸入命令:

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

輸出結(jié)果,表示本地執(zhí)行成功。

duncanwang@duncanwang:~/eos$ cleos set contract eosio build/contracts/eosio.bios -p eosio

Reading WAST/WASM from build/contracts/eosio.bios/eosio.bios.wasm...Using already assembled WASM...

Publishing contract...

executed transaction: f4c1cc4e953710645a4849eb41cf92d9d3881c756b227323a3ade221e3807fbb  3720 bytes  12685 us

#         eosio <= eosio::setcode               {"account":"eosio","vmtype":0,"vmversion":0,"code":"0061736d0100000001621260037f7e7f0060057f7e7e7e7e...

#         eosio <= eosio::setabi                {"account":"eosio","abi":"0e656f73696f3a3a6162692f312e30050c6163636f756e745f6e616d65046e616d650f7065...

warning: transaction executed locally, but may not be confirmed by the network yet

4.5 創(chuàng)建并導(dǎo)入新的密鑰對(duì)

1)創(chuàng)建新的密鑰對(duì)

cleos create key

創(chuàng)建密鑰對(duì)的輸出結(jié)果。

duncanwang@duncanwang:~/eos$ cleos create key

Private key: 5JZQmnt6ZtEzUADswgKgBwMp9qAwTSNM9JFHPRFu1FjrLjj49g7

Public key: EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1

2) 導(dǎo)入新的私鑰

cleos wallet import 5JZQmnt6ZtEzUADswgKgBwMp9qAwTSNM9JFHPRFu1FjrLjj49g7 -n duncanwang

輸出結(jié)果如下:

duncanwang@duncanwang:~/eos$ cleos wallet import 5JZQmnt6ZtEzUADswgKgBwMp9qAwTSNM9JFHPRFu1FjrLjj49g7 -n duncanwang

imported private key for: EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1

3)查看確認(rèn)密鑰對(duì)是否導(dǎo)入成功

cleos wallet keys

用于查看錢(qián)包的密鑰對(duì)情況。

【輸出結(jié)果】

duncanwang@duncanwang:~/eos$ cleos wallet keys

[ 

 "EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1", 

 "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"

]

4.6  創(chuàng)建新賬號(hào)

創(chuàng)建賬號(hào)的命令:

cleos create account eosio {new_account} ownerkey {active_key}

其中eosio是超級(jí)用戶(hù),需要靠超級(jí)用戶(hù)來(lái)創(chuàng)建其它的新用戶(hù),eosio后面就是你的新用戶(hù)的用戶(hù)名.

除了新的賬號(hào)之外,命令后面還有兩個(gè)key:

  • Owner key

  • Active key

Owner key是什么意思呢?Owner key表示分配給新賬號(hào)的一個(gè)Owner認(rèn)證的公鑰。Active key是分配給新賬號(hào)一個(gè)Active認(rèn)證的一個(gè)公鑰。

至于這兩個(gè)認(rèn)證,我后面會(huì)給詳細(xì)介紹,這是兩個(gè)主要的權(quán)限。我創(chuàng)建一個(gè)賬號(hào),如果這個(gè)賬號(hào)要有Owner的權(quán)限和Active的權(quán)限,就必須要用這兩個(gè)key才能實(shí)現(xiàn)。

我們來(lái)總結(jié)一下剛才的操作,我們剛才操作是調(diào)用cleos create account創(chuàng)建了一個(gè)賬號(hào),這個(gè)賬號(hào)的命名規(guī)則遵守下邊兩個(gè)規(guī)則:

  • 小于13個(gè)字符;

  • 僅包含這些字符:.12345abcdefghijklmnopqrstuvwxyz

另外,剛才給大家說(shuō)到Owner key和Active key的概念。Owner key的概念就是你賬號(hào)的所有控制權(quán)限,你只要有了Owner key,你可以對(duì)這個(gè)賬號(hào)的任何東西做任何的事兒,這是它的所有控制權(quán)。

而Active key只掌握了你的賬號(hào)資金的訪(fǎng)問(wèn)權(quán)限,也就是你如果有了Active這個(gè)權(quán)限的話(huà),你可以對(duì)這個(gè)賬號(hào)的資金進(jìn)行轉(zhuǎn)移,但是你不能轉(zhuǎn)移這個(gè)賬號(hào)的所有權(quán),或者不能做超過(guò)這個(gè)Active權(quán)限其它的權(quán)利。

如果簡(jiǎn)單的理解,Owner key就是對(duì)這個(gè)賬號(hào)的最高權(quán)限,Active只是用來(lái)轉(zhuǎn)移資金而已。這也是與以太坊智能合約開(kāi)發(fā)的一個(gè)區(qū)別,以太坊賬號(hào)的權(quán)限其實(shí)沒(méi)有這么細(xì)分,它就只有一個(gè)賬號(hào),我只要有這個(gè)賬號(hào)的公鑰和私鑰,我就可以做任何事情。

具體操作如下。

cleos create account eosio wangdenghui1 EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1 EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1

【錯(cuò)誤現(xiàn)象】

duncanwang@duncanwang:~/eos$ cleos create account eosio wangdenghui1 EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1 EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1

Error 3050000: action exception

【解決方案-查詢(xún)賬號(hào)】

查詢(xún)發(fā)現(xiàn)該賬號(hào)已存在,之前輝哥創(chuàng)建過(guò),忘記了。

duncanwang@duncanwang:~/eos$ cleos get accounts EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1

{

  "account_names": [

    "wangdenghui1" 

 ]

}

> cleos create account eosio boss EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1 EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1

創(chuàng)建成功輸出結(jié)果:

duncanwang@duncanwang:~/eos$ cleos create account eosio boss EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1 EOS6EHAzvrpQ4wo1BPcAk86X6aGDARZgqTcAq1mJRF1SxEYgNGWN1

executed transaction: cb6801fe82816f94b447cbfb903ae8e9477f5c99920322d679a9c8c04347e536  200 bytes  367 us

#         eosio <= eosio::newaccount            {"creator":"eosio","name":"boss","owner":{"threshold":1,"keys":[{"key":"EOS6EHAzvrpQ4wo1BPcAk86X6aGD...

warning: transaction executed locally, but may not be confirmed by the network yet

以上就是“區(qū)塊鏈的EOS環(huán)境怎么搭建”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站標(biāo)題:區(qū)塊鏈的EOS環(huán)境怎么搭建
分享URL:http://weahome.cn/article/psgcgd.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部