国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

區塊鏈平臺EOSIO開發智能合約和dapp(一)

tylin / 3581人閱讀

摘要:與傳統方式不同,在去中心化的網絡及區塊鏈上運行后端代碼智能合約。這個博客涵蓋了什么在本博客中,我將展示如何設置區塊鏈并開發智能合約。

在我傾聽Bettina Warburg的演講之后,我對去中心化經濟(dApps)的概念著迷。傳統的Web應用程序是:

前端→后端→數據庫

相比之下,dApp網站是:

前端→智能合約→區塊鏈

例如,當你進入電子銀行時,網頁將調用后端代碼來獲取你的個人數據并將其顯示在頁面上。后端代碼在集中式服務器上運行。

與傳統方式不同,dApps在去中心化的P2P網絡及區塊鏈(Blockchain)上運行后端代碼智能合約(smart contract)。

為什么區塊鏈如此熱?

區塊鏈是支撐數字貨幣比特幣的技術,但它具有更廣泛的應用,并且正在越來越多的領域實現商業化。它引起了對科技界及其他人的濃厚興趣,因為它在金融服務,公共部門和其他領域開辟了新的可能性。 ——THOUGHT LEADERSHIP Nov 2017

什么是EOSIO區塊鏈?

EOSIO宣傳為dApp的操作系統。它是從頭開始構建的,每秒執行數百萬次交易(與目前最大的區塊鏈網絡相比:以太網每秒只有15次交易),這使其更適合復雜的dapp生態系統和去中心化,貨幣化的經濟。

這個博客涵蓋了什么?

在本博客中,我將展示如何設置EOSIO區塊鏈并開發智能合約。這是本系列的第1部分。下面逐步演示了EOSIO安裝以及我如何設置錢包,帳戶和代幣。讓我們開始吧。

一個干凈的虛擬機

為了避免與現有軟件發生沖突,我為這個實驗準備了一個干凈的虛擬機。我正在使用Linux KVM虛擬化基礎架構(KVM比Virtualbox快得多,它只比裸機差2%)。我為VM分配了以下配置:

8 GB RAM,4個vCPU

30 GB磁盤空間

Ubuntu 17.10 desktop

1.下載EOSIO

安裝操作系統后,我在終端中執行以下操作:

$ sudo apt install git-core

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

$ cd eos
$ git submodule update --init --recursive

$ ./eosio_build.sh

$ export PATH=${HOME}/opt/mongodb/bin:$PATH
$ ~/opt/mongodb/bin/mongod -f ~/opt/mongodb/mongod.conf &
$ cd ~/eos/build: make test

$ sudo make install
2.啟動服務器

此時安裝了EOSIO,我輸入以下命令來啟動服務器:

$ cd ~/eos/build/programs/keosd
$ keosd --http-server-address=localhost:8899

打開一個新的命令行客戶端:

$ cd ~/eos/build/programs/nodeos
$ nodeos -e -p eosio --contracts-console --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --plugin eosio::wallet_api_plugin

再打開一個新的命令行客戶端:

$ alias cleos="~/eos/build/programs/cleos/cleos --wallet-url=http://localhost:8899"
3.創建錢包,密鑰對,帳戶和代幣

要在區塊鏈中存儲信息,我們需要一個用于標識數據和錢包的帳戶來保護用于簽署交易的密鑰。請參閱此處了解EOSIO帳戶和錢包概念概述

我執行了以下操作:

$ cd ~/eos
$ cleos wallet create

將屏幕中的密碼記錄下來備用。

$ cleos wallet key

將屏幕中private1和public2的密鑰對值記錄下來備用。

$ cleos wallet key

再來一組private2和public2的密鑰對值記錄下來備用。

$ cleos wallet import ${private_key_1}
$ cleos wallet import ${private_key_2}
$ cleos wallet keys

通過私鑰private1和private2將密鑰導入錢包后你應該可以在屏幕中看到錢包中顯示2個公鑰的值。

$ cleos create account eosio myaccount ${public_key_1} ${public_key_2}

執行上面的命令,你應該發現有錯誤信息。意思是說你的錢包沒有解鎖。

$ find ~ -name config.ini 
$ nano ~/.local/share/eosio/nodes/config/config.ini

config.ini可能位于其他平臺的另一個目錄中,在config.ini中看到配置項signature-provider =*******,將該值的私鑰導入錢包中:

$ cleos wallet import ${private_key_signature-provider}
$ cleos wallet keys

這時你應該可以在錢包里看到3個公鑰。

$ cleos create account eosio myaccount ${public_key_1} ${public_key_2}

賬號會被成功建立,我們再來建幾個賬號。

$ cleos create account eosio user ${public_key_1} ${public_key_2}
$ cleos create account eosio tester ${public_key_1} ${public_key_2}
$ cleos create account eosio eosio.token ${public_key_1} ${public_key_2}

eosio.token賬號上創建合約。

$ cleos set contract eosio.token ~/eos/build/contracts/eosio.token -p eosio.token

將合約推送到區塊鏈:

$ cleos push action eosio.token create "{"issuer":"eosio", "maximum_supply":"1000000000.0000 SYS"}" -p eosio.token

做些單一操作測試,創建賬號,發代幣,轉賬:

$ cleos create account eosio user ${public_key_1} ${public_key_2}
$ cleos push action eosio.token issue "[ "user", "100.0000 SYS", "memo" ]" -p eosio
$ cleos push action eosio.token transfer "[ "user", "tester", "1.0000 SYS", "m" ]" -p user

建一個exchange賬號,并建個exchange合約,合約代碼在contracts/下,主要是創建和交易貨幣的功能:

$ cleos create account eosio exchange ${public_key_1} ${public_key_2}
$ cleos set contract exchange ~/eos/build/contracts/exchange -p exchange

建一個eosio.msig,建一個eosio.msig合約,合約代碼在contracts/下,主要是允許多方異步簽署單個交易:

$ cleos create account eosio eosio.msig ${public_key_1} ${public_key_2}
$ cleos set contract eosio.msig ~/eos/build/contracts/eosio.msig -p eosio.msig

備份錢包:

$ mkdir backup-my-wallet
$ cp -R ~/eosio-wallet ./backup-my-wallet/
4.試著編寫智能合約hello

EOSIO Smart Contract是一個在區塊鏈中執行的C ++程序。 請參閱文檔此處了解。

EOSIO在contracts/目錄中提供了幾個樣本合約,我直接用了hello合約hello.cpp:

#include 
#include 
using namespace eosio;

class hello : public eosio::contract {
  public:
      using contract::contract;

      /// @abi action 
      void hi( account_name user ) {
         print( "Hello, ", name{user} );
      }
};

EOSIO_ABI( hello, (hi) )

進行測試如下:

$ cd ~/eos/contracts/hello
$ eosiocpp -o hello.wast hello.cpp
$ eosiocpp -g hello.abi hello.cpp

創建賬號:

$ cleos create account eosio hello.code ${public_key_1} ${public_key_2}

創建合約:

$ cleos set contract hello.code ../hello -p hello.code

推送合約:

$ cleos push action hello.code hi "["user"]" -p user

修改hello.cpp,在print( "Hello, ", name{user} );上面加上一句require_auth(user)

編譯合約,更新合約,推送合約:

$ eosiocpp -o hello.wast hello.cpp
$ cleos set contract hello.code ../hello -p hello.code
$ cleos push action hello.code hi "["tester"]" -p user

應該有個錯誤信息,我們把推送命令修改一下:

$ cleos push action hello.code hi "["tester"]" -p tester

這回應該沒問題了。

$ pkill keosd && pkill nodeos

關掉服務進程。

分享一個交互式的在線編程實戰,EOS智能合約與DApp開發入門

EOS教程

本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智能合約開發與部署、使用代碼與智能合約交互等核心知識點,最后綜合運用各知識點完成一個便簽DApp的開發。

這里是原文

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24283.html

相關文章

  • 區塊平臺EOSIO開發智能合約dapp(二)

    摘要:示例智能合約的目的是模擬選舉。這告訴了智能合約中處理程序的定義。接下來的任務是創建一個新的帳戶來保存選舉智能合約。 這是一步步的用EOSIO開發區塊鏈DApp的第二部分,這部分將主要是為EOSIO平臺開發智能合約。 示例智能合約的目的是模擬選舉。我創建了一個EOSIO用戶來托管智能合約。創建了兩個公民用戶來投票給候選人。投票記錄保存在EOSIO區塊鏈中。在此示例中,所有操作都在命令模式...

    cuieney 評論0 收藏0
  • EOS DApp開發入門(二): 智能合約探究

    摘要:在看啟動腳本輸出的時候,發現了這兩樣輸出設置和智能合約,以及安裝合約開發工具。合約開發工具是的工具鏈和一組工具,用于促進平臺的合同編寫。系統智能合約,可以進行很多系統級別的操作,比如用戶投票將用戶注冊成為生產者。 Previously 在EOS DApp開發入門(一)中,通過docker image的方式架起了本地的eos區塊鏈,使Note chain DApp與本地區塊鏈進行交互,成...

    Honwhy 評論0 收藏0
  • 區塊平臺EOSIO開發智能合約dapp(三)

    摘要:在中被大量使用以便于開發。事實上,在中創建帳戶存在問題。這種方法使我可以輕松調用智能合約。結論這就是我的區塊鏈實驗系列的全部內容。 這是一步步的用EOSIO開發區塊鏈DApp的第三部分,上一部分中,我為EOSIO平臺開發了一個模擬選舉的智能合約。這部分我將開發一個webapp,允許訪問者投票給候選人。 以下是webapp的快速預覽: showImg(https://segmentfau...

    yiliang 評論0 收藏0
  • 區塊平臺EOSIO開發智能合約dapp(三)

    摘要:在中被大量使用以便于開發。事實上,在中創建帳戶存在問題。這種方法使我可以輕松調用智能合約。結論這就是我的區塊鏈實驗系列的全部內容。 這是一步步的用EOSIO開發區塊鏈DApp的第三部分,上一部分中,我為EOSIO平臺開發了一個模擬選舉的智能合約。這部分我將開發一個webapp,允許訪問者投票給候選人。 以下是webapp的快速預覽: showImg(https://segmentfau...

    CoyPan 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<