BM教你如何在EOS上创建Hello World智能合约

EOS E0S
  • 时间:
  • 浏览:

程序猿朋友都知道,在计算机界有一个不成文的传统,无论是学什么编程语言,第一课往往就是“Hello World”。虽然只是在计算机屏幕上输出“Hello,world”这行字符串,但却是最基础也是最重要的一步,迈出这第一步才有以后无限的可能。昨晚,EOS的创始人Daniel larimer(BM)在GitHub上用Hello World示例更新了教程。

BM教你如何在EOS上创建Hello World智能合约

创建一个名为“hello”的新文件夹,然后使用以下内容创建一个文件“hello / hello.cpp”:

hello/hello.cpp#include <eosiolib/eosio.hpp>#include <eosiolib/print.hpp>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) )

然后你可以将它编译成web assmebly (.wast)

$ eosiocpp -o hello.wast hello.cpp

然后你可以生成abi:

$ eosiocpp -g hello.abi hello.cppGenerated hello.abi

然后我们创建账户并上传合同

$ cleos create account eosio hello.code EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4 EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4...$ cleos set contract hello.code ../hello -p hello.code...

现在我们可以运行合同

$ cleos push action hello.code hi '["user"]' -p userexecuted transaction: 4c10c1426c16b1656e802f3302677594731b380b18a44851d38e8b5275072857 244 bytes 1000 cycles# hello.code <= hello.code::hi {"user":"user"}>> Hello, user

看完这个智能合约实例,大家是不是觉得挺简单的。目前EOS的智能合约支持的编程语言不多,相信以后除了C++,还会支持更多的语言。

最近几天,BM在EOS开发者电报群比较活跃。因为Dawn 3.0 / RC1即将正式发布,这个版本将与6月上线的正式版无太大差异,很多开发者也摩拳擦掌想在EOS应用开发上做出一番作为。不过因为网上主要存在都还是旧版的(Dawn 2.X)教程,跟新版的不兼容,所以不少人在开发中有疑问,在EOS开发者电报群求助便是合适的地方。想做EOS Dapp开发的小伙伴可以多到开发者电报群看看。

此外,有人问BM当谷歌达到量子霸权时,EOS能否及时更新抵抗量子的算力攻击。BM表示可以,如果到时有一个抵抗量子的公共密钥基础设施,EOS将会采用它。