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ソースアドレス:
2.2 Sublimeエディタのインストール
エディタはSublimeを使う必要はありません.テキストを入力できればいいです.浪兄は主にSublimeを使うことに慣れています.Sublime Linuxインストール.
2.3コード実装
このコードは簡単で、浪兄まで直接EOS公式サイトCopyから来ました.このコードが実現する機能はeosアカウントに入力し、印刷することです.最後のコード
2.4コンパイルコード
契約の所在ディレクトリを開き、
実行に成功すると、2つのファイルが生成され、それぞれ
2.5アカウントの作成
契約を導入すると、アカウントに配備されます.ここでは
2.6配置契約
**お知らせ:**授権方式は
2.7契約の実行
両方のコンソールに
**お知らせ:**コンソールはデフォルトでは出力内容を印刷しません.
これで私たちは完全なEOSインテリジェント契約開発プロセスを完成しました.自信を持っています.
三、まとめ
有木は1つの現象を発見して、私達は現在EOSのすべての操作に対して、すべて命令行に基づいて、しかし既存のDappはほとんどウェブサイトの操作で、それでは彼らはまたどのように実現しましたか?そう、これが私たちが次に話した重ポンドの内容です.JSはEOSスマート契約を呼び出します.
EOS開発シリーズ教材推奨
EOS開発完全解析(一):Ubuntu上にEOS開発環境を構築する
EOS開発完全解析(二):cleosコマンドラインで財布の作成、インポート、ロック解除
EOS開発完全解析(三):EOSアカウント作成
EOS開発完全解析(四):EOS快速発貨、何で円を巻くのか.コインしかない!
EOS開発完全解析(五):EOSシステム資源解析、振り替え無料かつDDOS攻撃防止の優れた設計
最新、最も完全なEOS開発教程を取得するには、微信公衆番号:ブロックチェーンの波の頂点--プロジェクト分析とブロックチェーン技術開発を一体化した公衆番号に注目してください.
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つのファイルが生成され、それぞれ
wasm
とapi
で終わります.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開発教程を取得するには、微信公衆番号:ブロックチェーンの波の頂点--プロジェクト分析とブロックチェーン技術開発を一体化した公衆番号に注目してください.