十分钟部署智能合约

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

时间: 2024-10-24 21:56:47

十分钟部署智能合约的相关文章

nodejs部署智能合约的方法-web3 0.20版本

参考:https://www.jianshu.com/p/7e541cd67be2 部署智能合约的方法有很多,比如使用truffle框架,使用remix-ide等,在这里的部署方法是使用nodejs一步步编译部署实现的: const Web3 = require('web3'); const web3 = new Web3();//使用web3来进行区块链接口的调用 //通过rpc连接区块链,这里连接的是本地私有链 web3.setProvider(new Web3.providers.Http

fabric 环境搭建 和 部署 智能合约 - (实习第二天)

首先安装docker,安装的时候有坑,坑就是资料没找对. 这篇博客的意义就是没有坑安装好,部署好. 我用的是 Ubuntu 18.04 安装Docker-ce,这下面的安装方式就是菜鸟教程的,可以去哪看. 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /et

十分钟部署Anemometer作为Mysql慢查询可视化系统

前言 采用Anemometer将Mysql慢查询日志可视化,可以更便捷的查询慢查询日志,并根据时间戳进行历史查询.如下是单机版Anemometer部署的演示,实际应用中,为安全起见,建议把anemometer 分开到另外的机器上. 工作原理 Anemometer: 实现日志可视化 pt-query-digest :抽取慢查询日志 环境信息 Ip 功能 软件信息 安装路径 操作系统 192.168.9.11 http服务 httpd-2.2.15-54 yum缺省路径 centos6.9 慢查询日

区块链入门(5)Truffle 项目实战,Solidity IDE, 智能合约部署

在上一张我们学习了Truffle项目的创建,部署等相关内容,今天我们就来实战一下. 今天我们要做3件事: 1) 学习搭建一个Solidity IDE(Remix). 2) 使用这个Solidity Ide编写一份智能合约. 3) 在我们前面第1,2,3章中部署的私有网络节点集群中部署这个合约,并能够在不同的节点中调用这个合约. Remix,是一个Solidity开发语言的Ide, 它是一款运行在浏览器端的solidity ide,也是官方推荐使用的ide. 另外还有其它的solidiy ide,

使用 Browser-solidity 在 Go-Ethereum 上进行简单的智能合约部署

1.基本概念 之前文章中,已经讲过 Go-Ethereum 1.7.2 如何安装及搭建以太坊私有链,这里就不多介绍. 在本文讲解之前,先介绍以下几点基本概念. 1.1.什么是智能合约? 智能合约是存储在区块链上的一段代码,它们可以被区块链上的交易所触发,触发后,这段代码可以从区块链上读取数据或者向区块链上写入数据. 1.2.什么是Solidity? Solidity 是 Ethereum 的一种契约型编程语言,运行在Ethereum虚拟机(EVM)之上. 1.2.1.Solidity的语言特性

智能合约从入门到精通:智能合约的前世今生

简介:区块链技术由来已久.2008年,神秘的日裔美国人中本聪天才设计出来的电子货币系统:比特币,为人类打开了区块链的大门.2009年,他发布了首个比特币软件,并正式启动了比特币金融系统.依靠POW算法的比特币随着人们认知,2016年以后区块链也为人们所追捧.而以太坊的快速发展,区块链已经进化出智能合约.DApp等新的技术,区块链2.0.3.0时代也正在来临.本文将详细介绍智能合约是什么.区块链是分布式数据存储.点对点传输.共识机制.加密算法等计算机技术的新型应用模式.所谓共识机制是区块链系统中实

第19讲 | 上手搭建一条自己的智能合约

上一篇我们聊到了区块链智能合约,我主要介绍了智能合约的概念,但是并没有给你提供智能合约的实际运行案例,那么今天,我们就自己动手写一个智能合约,并且介绍一下智能合约标准模板,供你参考学习, 并搭建起自己的智能合约. 本篇将以以太坊作为基础知识进行讲解,本篇面向没有任何智能合约基础的人群,所以配备了较多的插图和操作命令,如果你正在收听音频,可以点击文稿查看,希望读完这篇文章可以帮助你快速入门智能合约. 搭建一条智能合约 在实际操作智能合约之前,我们首先回顾一下以太坊,以太坊又称以太坊钱包.以太坊钱包

Windows下以太坊集成开发环境(Remix-IDE)搭建与智能合约的简单应用

前面我们介绍了在以太坊平台下开发区块链私有链的过程,以及在私有链下进行挖矿的操作,而随着区块链技术的发展,区块链技术已不仅限于比特币的应用,未来将重在着眼于向其他领域的扩展推广,以此开启区块链2.0以智能合约为代表的时代.本文选用remix作为开发应用平台,配合geth客户端实现与以太坊网络的交互,下一篇文章则改用truffle和ganache搭建开发框架(这是后话). 本文分为remix-ide搭建和智能合约部署应用两部分. 一.remix-ide搭建 [准备工作] 1.安装Node.js.N

深入以太坊智能合约 ABI

开发 DApp 时要调用在区块链上的以太坊智能合约,就需要智能合约的 ABI.本文希望更多了解 ABI,如为什么需要 ABI?如何解读 Ethereum 的智能合约 ABI?以及如何取得合约的 ABI? 数字猫合约 ABI ABI(Application Binary Interface) 如果理解 API 就很容易了解 ABI.简单来说,API 是程序与程序间互动的接口.这个接口包含程序提供外界存取所需的 functions.variables 等.ABI 也是程序间互动的接口,但程序是被编译