200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > EOS区块链技术开发(二)智能合约

EOS区块链技术开发(二)智能合约

时间:2020-01-09 10:39:36

相关推荐

EOS区块链技术开发(二)智能合约

强烈建议直接去看EOSIO官网上的教程:https://developers.eos.io/

不要看我的??博文了,以下博文就是我当时随便写写的,现在也没有什么时间详细修改。如果有问题可以提问。

注:由于EOSIO仍在不断更新,所以以下内容的一些步骤可能会在将来某天失效。本开发手册编写时间是在.10至.11.可能会不断更新。

说一下EOSIO软件和EOS区块链的区别:就行Linux源码和实际跑在机器上Linux操作系统一样。

3 智能合约编写

搬运自EOSIO官网:

第一个智能合约

智能合约就看这个网站:

https://developers.eos.io/eosio-cpp/docs/introduction

要玩转EOS(写Dapp),你需要精通智能合约编写+cleos、nodeos等命令操作。其中第二部分是你对于eos整个体系的运转、实现的了解程度的体现。

总结一下我现在知道的关于智能合约编写的内容:

3.1 是什么

智能合约就是一个区块链意义下的程序,放在区块链节点上的代码(相当于中心化服务器中的程序)。这个程序可以说是一个cpp文件,带有一个类,这个类必须继承contract类。在这个类中写成员变量和成员函数。部分函数会是action。要成为一个action,需要定义宏,比如:

EOSIO_ABI( hello, (hi))

于是最后最后可以被调用。

这个宏起的作用是dispatching,但是也有其他dispatching的方法。

除此之外,这个类中还应该有table类的结构和相关代码用于数据持久化技术。

3.2 怎么用

智能合约写好以后,首先需要编译,使用命令:

eosio-cpp -o hello.wasm hello.cpp –abigen

就可以编译该文件为abi文件+wasm文件。其中abi文件是类Json的传递数据结构、控制信息的文件。但是有的时候abi文件会出错,所以需要手动改。Abi文件十分重要,从智能合约最后一定要写ABI的宏就知道,abi文件有点类似于血管,流通在整个智能合约体系中。

成功得到abi和wasm文件后,就可以部署智能合约了:

cleos set contract hello CONTRACTS_DIR/hello -p hello@active

你必须要把合约和一个account绑定。所以通常你会为每个智能合约创建一个账号。

最后,当合约部署完毕,你就可以使用它了。比如:

cleos push action hello hi '["bob"]' -p bob@active

3.3 数据存储

EOSIO好像不是用数据库来存储数据的,而是用自己创建一个结构体,并且自定义一些函数来完成数据的update /insert等操作,这种数据结构(Schema)成为multi-index(说实话只要只有多属性的数据肯定是多索引的吧…)。这或许是因为eos体系中的账户信息等都是存在内存中的原因吧。

3.4 关于EOS的设置:主要是针对插件–plugin

config.ini的路径前面说过了:

cd ~/Library/Application*Support/eosio/nodeos/config

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。