目錄
前言
配置及使用控制臺
第一步. 準(zhǔn)備依賴
第二步. 啟動并使用控制臺
部署及調(diào)用測試HelloWorld合約
第一步. 編寫HelloWorld合約
第二步. 部署HelloWorld合約
第三步. 調(diào)用HelloWorld合約
前言
隨著區(qū)塊鏈的發(fā)展,目前國內(nèi)也掀起了一陣區(qū)塊鏈的熱潮,無論是金融、信任、交易、溯源等領(lǐng)域都是非常受歡迎,慢慢的我們也將成為第一個吃螃蟹的人,本篇文章主要是與大家一起創(chuàng)建一個嶄新的FISCO-BCOS區(qū)塊鏈網(wǎng)絡(luò),單機(jī)四節(jié)點(diǎn)。
我們選擇用國產(chǎn)的FISCO-BCOS來進(jìn)行我們的第一個區(qū)塊鏈網(wǎng)絡(luò)教程,是因?yàn)镕ISCO-BCOS對于國內(nèi)相對友好,資源較多架構(gòu)基本一致,所以我們選擇先使用FISCO-BCOS來在大家的腦海里形成一個完整的區(qū)塊鏈交易流程與區(qū)塊鏈模型。
謝謝支持,精品區(qū)塊鏈交流請認(rèn)準(zhǔn)“CQCET-阿雄不會寫代碼”
配置及使用控制臺
第一步. 準(zhǔn)備依賴
- 安裝java (推薦使用java 14).
# ubuntu系統(tǒng)安裝java sudo apt install -y default-jdk #centos系統(tǒng)安裝java sudo yum install -y java java-devel
- 獲取控制臺并回到fisco目錄
cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.1/download_console.sh && bash download_console.sh
- 如果因?yàn)榫W(wǎng)絡(luò)問題導(dǎo)致長時間無法下載,請嘗試?cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh
- 拷貝控制臺配置文件
若節(jié)點(diǎn)未采用默認(rèn)端口,請將文件中的20200替換成節(jié)點(diǎn)對應(yīng)的channel端口。
# 最新版本控制臺使用如下命令拷貝配置文件 cp -n console/conf/config-example.toml console/conf/config.toml
- 配置控制臺證書
注解
使用1.x版本控制臺時:
- 搭建國密版時,如果使用國密SSL請執(zhí)行?
cp?nodes/127.0.0.1/sdk/gm/*?console/conf/
- 搭建國密版時,請修改 applicationContext.xml 中 encryptType 修改為1
cp -r nodes/127.0.0.1/sdk/* console/conf/
第二步. 啟動并使用控制臺
- 啟動
cd ~/fisco/console && bash start.sh
輸出下述信息表明啟動成功 否則請檢查conf/config.toml中節(jié)點(diǎn)端口配置是否正確
============================================================================================= Welcome to FISCO BCOS console(2.6.0)! Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console. ________ ______ ______ ______ ______ _______ ______ ______ ______ | \| \ / \ / \ / \ | \ / \ / \ / \ | $$$$$$$$ \$$$$$$| $$$$$$\| $$$$$$\| $$$$$$\ | $$$$$$$\| $$$$$$\| $$$$$$\| $$$$$$\ | $$__ | $$ | $$___\$$| $$ \$$| $$ | $$ | $$__/ $$| $$ \$$| $$ | $$| $$___\$$ | $$ \ | $$ \$$ \ | $$ | $$ | $$ | $$ $$| $$ | $$ | $$ \$$ \ | $$$$$ | $$ _\$$$$$$\| $$ __ | $$ | $$ | $$$$$$$\| $$ __ | $$ | $$ _\$$$$$$\ | $$ _| $$_ | \__| $$| $$__/ \| $$__/ $$ | $$__/ $$| $$__/ \| $$__/ $$| \__| $$ | $$ | $$ \ \$$ $$ \$$ $$ \$$ $$ | $$ $$ \$$ $$ \$$ $$ \$$ $$ \$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$ =============================================================================================
若1.x控制臺啟動失敗,參考?Web3SDK啟動失敗場景
- 用控制臺獲取信息
# 獲取客戶端版本 [group:1]> getNodeVersion ClientVersion{ version='2.6.0', supportedVersion='2.6.0', chainId='1', buildTime='20200819 15:47:59', buildType='Darwin/appleclang/RelWithDebInfo', gitBranch='HEAD', gitCommitHash='e4a5ef2ef64d1943fccc4ebc61467a91779fb1c0' } # 獲取節(jié)點(diǎn)信息 [group:1]> getPeers [ PeerInfo{ nodeID='c1bd77e188cd0783256ee06838020f24a697f9af785438403d3620967a4a3612e3abc4bbe986d1e9dddf62d4236bff0b7d19a935a3cd44889f681409d5bf8692', ipAndPort='127.0.0.1:30302', agency='agency', topic=[ ], node='node2' }, PeerInfo{ nodeID='7f27f5d67f104eacf689790f09313e4343e7887a1a7b79c31cd151be33c7c8dd57c895a66086c3c8e0b54d2fa493407e0d9646b2bd9fc29a94fd3663a5332e6a', ipAndPort='127.0.0.1:57266', agency='agency', topic=[ _block_notify_1 ], node='node1' }, PeerInfo{ nodeID='862f26d9681ed4c12681bf81a50d0b8c66dd5b6ee7b0b42a4af12bb37b1ad2442f7dcfe8dac4e737ce9fa46aa94d904e8c474659eabf575d6715995553245be5', ipAndPort='127.0.0.1:30303', agency='agency', topic=[ ], node='node3' } ] [group:1]>
部署及調(diào)用測試HelloWorld合約
第一步. 編寫HelloWorld合約
HelloWorld合約提供兩個接口,分別是get()
和set()
,用于獲取/設(shè)置合約變量name
。合約內(nèi)容如下:文章來源:http://www.zghlxwxcb.cn/news/detail-494947.html
pragma solidity ^0.4.24; contract HelloWorld { string name; function HelloWorld() { name = "Hello, World!"; } function get()constant returns(string) { return name; } function set(string n) { name = n; } }
第二步. 部署HelloWorld合約
為了方便用戶快速體驗(yàn),HelloWorld合約已經(jīng)內(nèi)置于控制臺中,位于控制臺目錄下contracts/solidity/HelloWorld.sol
,參考下面命令部署即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-494947.html
# 在控制臺輸入以下指令 部署成功則返回合約地址 [group:1]> deploy HelloWorld transaction hash: 0xd0305411e36d2ca9c1a4df93e761c820f0a464367b8feb9e3fa40b0f68eb23fa contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344
第三步. 調(diào)用HelloWorld合約
# 查看當(dāng)前塊高 [group:1]> getBlockNumber 1 # 調(diào)用get接口獲取name變量 此處的合約地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get --------------------------------------------------------------------------------------------- Return code: 0 description: transaction executed successfully Return message: Success --------------------------------------------------------------------------------------------- Return values: [ "Hello,World!" ] --------------------------------------------------------------------------------------------- # 查看當(dāng)前塊高,塊高不變,因?yàn)間et接口不更改賬本狀態(tài) [group:1]> getBlockNumber 1 # 調(diào)用set設(shè)置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" transaction hash: 0x7e742c44091e0d6e4e1df666d957d123116622ab90b718699ce50f54ed791f6e --------------------------------------------------------------------------------------------- transaction status: 0x0 description: transaction executed successfully --------------------------------------------------------------------------------------------- Output Receipt message: Success Return message: Success --------------------------------------------------------------------------------------------- Event logs Event: {} # 再次查看當(dāng)前塊高,塊高增加表示已出塊,賬本狀態(tài)已更改 [group:1]> getBlockNumber 2 # 調(diào)用get接口獲取name變量,檢查設(shè)置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get --------------------------------------------------------------------------------------------- Return code: 0 description: transaction executed successfully Return message: Success --------------------------------------------------------------------------------------------- Return values: [ "Hello,FISCO BCOS" ] --------------------------------------------------------------------------------------------- # 退出控制臺 [group:1]> quit
到了這里,關(guān)于【教程】教你搭建控制臺鏈接區(qū)塊鏈網(wǎng)絡(luò),如何搭建FISCO-BCOS控制臺的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!