我是靠谱客的博主 唠叨铅笔,最近开发中收集的这篇文章主要介绍十分钟部署智能合约,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

十分钟部署智能合约
eos环境搭建
1.git clone源代码
git clonehttps://github.com/EOSIO/eos --recursive
2.下载编译之后,里面有三个应用程序,这三个应用程序也都是命令行的:

1、Cleos;

2、Nodeos;

3、Keosd。

这三个应用程序之间有什么关系呢?我们现在使用的前端,怎么使用EOS呢?
-Cleos,它是一个命令行程序。在前端使用EOS是通过Cleos输入命令,给EOS下达指令。
-Nodeos,其实它就是挖矿客户端。在启动Nodeos之后,它自然就会产生区块。
-Keosd,它是在后端启动。它的目的主要是管理钱包,可以创建私钥。为什么分成Nodeos和Keosd?
我理解的是,Keosd可以认为是个轻客户端,因为有时候只需要进行钱包操作,不需要挖矿,就可以启动Keosd。

节点启动
第一步下载编译完成后
cd build/programs/nodeos ./nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugineosio::chain_api_plugin --plugin eosio::account_history_api_plugin

整个eos是一个插件式的结构 需要有一个主程序 其他的功能拓展都是一个插件。

创建和管理钱包
创建钱包
Cleos wallet create
创建一组秘钥
cleos create key
私钥导入钱包
cleos wallet import
查看钱包中的秘钥
cleos wallet keys

创建和管理账户
帐号:一个在区块链上人类的可读标识符
$ cleos createaccount eosio ${new_account} ${owner_key} ${active_key}
备注:
eos是超级用户 用来创建其他用户 eosio后面是新用户的用户名

除了新账号之外 还有两个Key 一个是公钥(超级权限) 一个是active激活用的。(仅有转账权限)

帐号命名规则 小个字符 仅包含这些字符 数字和字母小写

eos权限许可

Threshold是某个许可需要的阈值。比如你要做一件事儿,它可能有个阈值,这个阈值是一个量化,你必须要达到这个阈值才可以进行相应的操作。Weight表示权重。账号必须对应某个许可拥有的权重,就是你的权重要大于你的阈值,然后这件事儿你就可以做。

两张有关的图说明权重:
https://mp.weixin.qq.com/s/OniYBJ6zbjxPrQYlZMhRWQ

publish就是一个定制化许可。我们每个用户也可以定义自己某些允许的一些操作。publish这里面的阈值是2,bob账号是2,stracy账号是2,这两个账号也可以单独做publish许可相关的操作。而publish的权限可能是比如发布一些消息、发布一些微博的操作。

eos智能合约
action trancaction
对于EOS,它多了一个action的概念,action其实它也是对一个智能合约中的某个函数的调用。transaction是由一个或者多个action组合而成的关系,就是在一个transaction里,可以包含多个action,这样你可以在一个transaction里签一次名,就可以调多个函数,做一组操作。

部署智能合约
部署
cleos set contract eosio build/contracts/eosio.bios -p eosio
运行
cleos set contracteosio.token build/contracts/eosio.token -p eosio.token
调用create函数
$ cleos push actioneosio.token create ‘[ “eosio”, “1000000000.0000 EOS”, 0, 0, 0]’ -p eosio.token
转移100个pdf币到user用户 代码如下
$cleos push actioneosio.token issue '[ "user", "100.0000 EOS","memo" ]' -p eosio

Issue这个操作是用来发币,它后面跟了3个参数:
一个是user,表示这个币发给谁;
数字表示要给这个用户转多少钱,我这里转了100多个user的token;
最后一个参数是是一个备注,相当于转账留言。

调试智能合约
官方推荐本地搭建节点 或者将信息pringt出来。 如果没有,那么你根本看不到打印信息。搭建本地节点后 能看到打印结果。

eos的rpc接口
前端:javascript html

https://eosio.github.io/eos/group__eosiorpc.htm

RPC的接口我们除了用C++或者用编程的方法去调用一些接口,我们可以用curl这种最简单的方法去调用这个接口。

常用的api
获取信息 版本
获取区块信息
获取账号信息

eos编程示范: c++版
// 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) )

测试部署合约
编译
$ eosiocpp -o hello.wasthello.cpp
$ eosiocpp -g hello.abihello.cpp

创建账号
$cleos create account eosio hello.codeEOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4 ...

部署
cleos set contract hello.code../hello -p hello.code

合约
cleos push action hello.codehi '["user"]' -p user

转载于:https://www.cnblogs.com/xiaocongcong888/p/9736174.html

最后

以上就是唠叨铅笔为你收集整理的十分钟部署智能合约的全部内容,希望文章能够帮你解决十分钟部署智能合约所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部