EOS開発完全解析(六):手触りで最初のEOSスマート契約を実現する--Hello EOS

4133 ワード

一、概説
EOSスマート契約はC++で作成されているので、本格的なビジネス開発では、C++文法を全面的に学ぶ必要があるに違いありません.最近爆発した契約の脆弱性を通じて、問題の深刻さを知ることができます.スマート契約を書くのは、これまでのコードを書くよりも真剣で細かく、お金と直接付き合っているからだと言えます.
今日はEOSを実装する最初のスマート契約についてお話ししますので、内在的な実装ロジックではなく、EOS上のスマート契約の開発プロセスを説明することに重点を置いています.そのため、最も簡単な例(20行以内に完了)を使用して、より多くの人にEOSスマート契約の開発プロセス全体を理解してもらうことを保証します.
二、実現
2.1 eosioを取り付ける.cdt
EOS仮想マシンはWebAssemblyで実現されていますが、EOSスマート契約はC++で作成されているので、この変換を完了するために使用されるC++コードをWebAssembly仮想機能で実行されるコード(wasm)に変換する必要があります.
eosio.cdtソースアドレス:https://github.com/EOSIO/eosio.cdt/公式はいくつかのインストール方式を推薦して、自分のシステム環境によって選択することができて、浪兄は1種の詰め詰めの方式を選んで、直接ソースコードのコンパイルをダウンロードします.
$ git clone --recursive https://github.com/eosio/eosio.cdt
$ cd eosio.cdt
$ ./build.sh
$ sudo ./install.sh

2.2 Sublimeエディタのインストール
エディタはSublimeを使う必要はありません.テキストを入力できればいいです.浪兄は主にSublimeを使うことに慣れています.Sublime Linuxインストール.
2.3コード実装
このコードは簡単で、浪兄まで直接EOS公式サイトCopyから来ました.このコードが実現する機能はeosアカウントに入力し、印刷することです.最後のコードEOSIO_DISPATCH( hello, (hi))に注目してください.このコードは、発行されたスマート契約名hello、呼び出された方法hiを意味します.
#include 
#include 

using namespace eosio;

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

      [[eosio::action]]
      void hi( name user ) {
         require_auth( user );//    ,        
         print( "Hello, ", name{user});
      }
};
EOSIO_DISPATCH( hello, (hi))

2.4コンパイルコード
契約の所在ディレクトリを開き、eosio-cpp -abigen hello.cpp -o hello.wasmの命令を実行します.
実行に成功すると、2つのファイルが生成され、それぞれwasmapiで終わります.
2.5アカウントの作成
契約を導入すると、アカウントに配備されます.ここではhelloというアカウントを作成します.アカウント作成の流れは説明せず、分からない子供靴は、前のチュートリアルを振り返って復習します.EOS開発完全解析(三):EOSアカウント作成
2.6配置契約./cleos set contract hello ~/contracts/hello -p hello@ownerというコードは、helloという契約をhelloというアカウントに配置することを意味し、授権方式はownerの権限である.
**お知らせ:**授権方式はactiveを使用することをお勧めします.ここでは浪兄が財布を導入する際にownerの秘密鍵を使用しているため、ownerを使用するしかありません.
2.7契約の実行./cleos push action hello hi '[eosio]' -p eosio@activeというコードは、hello契約を呼び出すhiメソッドを意味し、パラメータはeosio、ライセンスアカウントはeosioである.
両方のコンソールにHello, eosioが印刷されているのがわかります.
**お知らせ:**コンソールはデフォルトでは出力内容を印刷しません.config.iniファイルを修正する必要があります.このファイルディレクトリは~/.local/share/eosio/nodeos/configで、contracts-console = trueになります.
これで私たちは完全なEOSインテリジェント契約開発プロセスを完成しました.自信を持っています.
三、まとめ
有木は1つの現象を発見して、私達は現在EOSのすべての操作に対して、すべて命令行に基づいて、しかし既存のDappはほとんどウェブサイトの操作で、それでは彼らはまたどのように実現しましたか?そう、これが私たちが次に話した重ポンドの内容です.JSはEOSスマート契約を呼び出します.
EOS開発シリーズ教材推奨
EOS開発完全解析(一):Ubuntu上にEOS開発環境を構築する
EOS開発完全解析(二):cleosコマンドラインで財布の作成、インポート、ロック解除
EOS開発完全解析(三):EOSアカウント作成
EOS開発完全解析(四):EOS快速発貨、何で円を巻くのか.コインしかない!
EOS開発完全解析(五):EOSシステム資源解析、振り替え無料かつDDOS攻撃防止の優れた設計
最新、最も完全なEOS開発教程を取得するには、微信公衆番号:ブロックチェーンの波の頂点--プロジェクト分析とブロックチェーン技術開発を一体化した公衆番号に注目してください.