建议和反馈

请填写你的反馈内容

EOS和基本智能合约初学者指南

2020-02-13 ·962次阅读 ·读完需要9分钟

1.什么是Eosio?

Eosio是一种软件,它引入了区块链架构,并声称是支持Dapps的去中心化操作系统,它是在开源MIT软件许可下开发的。Block.one开发了eosio软件,它是一家领先的区块链解决方案公司,提供高性能的区块链解决方案。


该软件提供帐户,身份验证,数据库,异步通信以及跨多个CPU内核和/或群集的应用程序调度。


2. Eosio与其他区块链(主要是以太坊)有何不同?

Eosio具有更高的可扩展性,因为它声称每秒管理数百万个事务,他们之所以这样说,是因为它们使用了DPOS(委托权益证明)共识机制。

EOS通过水平可伸缩性提供智能合约的并行处理,它们通过向资源池中添加更多系统来实现水平可伸缩性。

他们计划完全免除交易费用,Eos采用所有权模型,即用户拥有并有权使用与其所占权益成比例的资源,而不必为每笔交易付费。


另外,请阅读我们关于智能合约的下一篇文章


需要先验知识:


C / C ++中级经验

区块链概念知识

Linux或命令行工具


EOSIO的架构


稍后将在需要时解释架构图中的所有术语,不要与该图混淆。


首先,您需要设置环境,并且必须安装所有依赖项和合同开发工具包才能在EOS区块链上创建钱包和帐户。


3.安装环境

3.1)下载依赖项:


码头工人


3.2)设置开发目录


命令:


Mkdir EOStest


镉EOStest

基本智能合约


3.3)获取Dockers映像


以下语句将下载一个包含已编译软件的Ubuntu映像。


docker pull eosio / eos:v1.4.2

初学者指南


3.4)引导节点和钱包


命令:


docker run —名称为eosio 

 -发布8888:8888 

 -发布127.0.0.1:5555:5555 

 —卷/ home / abhi_21094 / Desktop / EOStest:/ home / abhi_21094 / Desktop / EOStest 

 —分离 

eosio / eos:v1.4.2 

/ bin / bash -c 

“ keosd — http-server-address = 0.0.0.0:5555&exec nodeos -e -p eosio —插件eosio :: producer_plugin —插件eosio :: chain_api_plugin —插件eosio :: history_plugin —插件eosio :: history_api_plugin —插件eosio: :http_plugin -d / mnt / dev / data-config-dir / mnt / dev / config-http-服务器地址= 0.0.0.0:8888-access-control-allow-origin = *-Contracts-Console-http-validate -host = false — filter-on ='*'”

指南


这些设置完成以下任务:


将端口8888和5555转发到主机

将本地驱动器上的工作卷别名为docker容器。

在bash中运行Nodeos启动。此命令将加载所有基本插件,设置服务器地址,启用CORS并添加一些合同调试。

无限制地启用CORS(*)

3.5)检查安装


命令:


docker日志—尾部10个eosio


3.6)检查钱包


在终端中打开一个新标签


命令:


docker exec -it eosio bash

cleos — wallet-url http://127.0.0.1:5555钱包列表


现在keosd成功运行了,现在您应该知道在安装以及开发过程中将使用的以下术语。


什么是Cleos?


(cli + eos = cleos)—命令行界面,可与区块链进行交互并管理钱包。


什么是Nodeos?


nodeos(node + eos = nodeos)—核心EOSIO节点守护程序,可以使用插件进行配置以运行节点。


什么是Keosd?


(key + eos = keosd)-将EOSIO密钥安全存储在钱包中的组件。


3.7)检查Nodeos端点


这将检查RPC API是否正常工作


卷曲http:// localhost:7777 / v1 / chain / get_info

您也可以在浏览器中通过chain_api_plugin提供的内容进行检查


http:// localhost:7777 / v1 / chain / get_info

3.8)混混的高手


我们不需要在每次与keosd交互时都在dockers容器中输入bash,因此我们可以为它提供别名的解决方案


别名cleos ='docker exec -it eosio / opt / eosio / bin / cleos-网址http://127.0.0.1:7777-钱包网址http://127.0.0.1:5555'

在您的终端上执行此命令或将其添加到您的.bashrc文件中,您可以在家里找到.bashrc文件,它可能是隐藏文件,请使用cntrl + h快捷方式显示隐藏文件。


4.合同开发工具包(安装CDT)

CDT的缩写,是与合同编制有关的工具的集合,主要使用CDT来编制合同和生成ABI。


安装命令:


Wget https://github.com/eosio/eosio.cdt/releases/download/v1.3.2/eosio.cdt-1.3.2.x86_64-0.x86_64 .rpm

sudo yum install ./eosio.cdt-1.3.2.x86_64–0.x86_64.rpm

复制此命令并在您的终端中执行,您将获得以下结果


到目前为止,您已经成功设置了环境并安装了Contract开发工具包。现在,您将设置钱包和帐户,这是EOS真正非常有趣的部分


区块链。


5.创建开发钱包

5.1)创建一个钱包


要创建钱包,您需要使用以下命令输入docker容器bash


命令:


sudo docker exec -it eosio bash

之后输入钱包创建命令


cleos wallet create —控制台

使用-to-控制台是因为我们仅将其用于开发目的,而不是将其用于生产目的而用于生产-归档,因为它将返回您的钱包私有。


钱包默认关闭


命令:


Cleos钱包打开

Cleos钱包清单


如果您将获得以下结果,则说明您的钱包已创建并成功打开。


默认情况下,您的cleos钱包是锁定的,您需要使用以下命令将其解锁:cleos wallet unlock,您可以在执行命令cleos wallet list时看到锁定和解锁的钱包之间的区别,当cleos wallet list出现时,它将立即返回默认值而没有星号锁定之后


执行解锁命令,您可以看到星号标志,该标志表明现在钱包已解锁。


现在我们必须将密钥导入钱包


cleos钱包create_key

结果:创建了一个新的私有密钥,其公共密钥为:“ EOS8PEJ…GDJQY5Y”


通过执行此命令,您将获得公共密钥,如下所示,将其复制。


5.2)进口发展重点


cleos钱包进口

现在输入下面提供的eosio开发密钥:


5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3


现在,默认钱包已解锁,并且密钥已加载。您已准备好继续。


用例:部署,发行和转移令牌


我们正在实施令牌合约以发行令牌并转移到任何帐户/用户。


源代码可在EOSIO的GitHub上获得:


命令:


git clone https://github.com/EOSIO/eosio.contracts —分支v1.4.0 —单分支

确保您位于eosio合同目录中:


cd eosio.contracts / eosio.token

6)创建帐号

账户是授权的集合,存储在区块链上,用于识别发件人/收件人。


cleos创建帐户eosio eosio.token EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

6.1)编制合同


eosio-cpp-我包括-o eosio.token.wasm src / eosio.token.cpp — abigen


6.2)部署合同


cleos设置合同eosio.token /home/abhi_21094/Desktop/EOStest/eosio.contracts/eosio.token — abi eosio.token.abi -p eosio.token@active

6.3)创建令牌


cleos推送操作eosio.token创建'[“ eosio”,“ 1000000000.0000 SYS”]'-p eosio.token@active


6.4)发行令牌


cleos推送操作eosio.token创建'{“ issuer”:“ eosio”,“ maximum_supply”:“ 1000000000.0000 SYS”}'-p eosio.token@active


6.5)将令牌从一个帐户转移到另一个帐户


cleos推送操作eosio.token传输'[“ alice”,“ bob”,“ 25.0000 SYS”,“ m”]'-p alice @ active


6.6)以JSON返回交易


cleos推送操作eosio.token问题'[“ alice”,“ 100.0000 SYS”,“ memo”]'-p eosio @ active -d -j


6.7)使用帐户名检查任何帐户的余额


cleos获取货币余额eosio.token bob SYS

25.00系统

cleos获取货币余额eosio.token爱丽丝SYS

75.00系统


做得好,您已经成功在EOSIO区块链上设置环境,创建钱包,账户,编译并部署了令牌智能合约。


评论(0)问答(0)
请先登录或注册

请先登陆或注册

相关推荐

技术篇| 智能合约安全问题以及解决办法

智能合约极大地扩展了区块链的应用场景与现实意义,但频发的安全事故严重阻碍了它的发展,智能合约安全性问题的研究就显得尤为关键。本文讨论了形式化验证、模糊测试和符号执行等主流的智能合约漏洞检测手段,对于象......
象链科技 · 2020-02-27
119阅读 · 0赞赏 · 0问答

象链科技 | 基于区块链和物联网技术的冷链物流″链″平台

象链科技提供的“冷链物流+区块链”的物流行业解决方案是基于区块链技术和IoT技术,在物流关键环节中,由各个参与方采集物流相关订单数据、物联网硬件采集运输过程中环境数据分布式存证于象链科技EleChai......
象链科技 · 2020-02-24
371阅读 · 0赞赏 · 0问答

CasperLabs Highway 简介

首个验证有活性且安全的CBC Casper协议规范当我们提到共识协议,有两个安全属性至关重要:安全和活性。若协议不会做出前后矛盾的决定,则该协议是安全的;若协议最终一定会做出决定,则该协议是有活性的。......
CasperLabs · 2020-02-22
397阅读 · 0赞赏 · 0问答

跨链生态,应用为王——比特元的跨链生态发展

"跨链生态,应用为王"2019年跨链公链引领了区块链公链项目的发展,跨链价值也被行业认可、推崇,跨链技术也被行业公认为区块链3.0的发展方向。跨链技术概念大热的同时,我们也发现,真......
复杂美chain33 · 2020-02-20
546阅读 · 0赞赏 · 0问答

详细解释智能合约是什么?

智能合约是一种自我执行的软件,由计算机的P2P网络管理。智能合约是有效的权限管理工具,无需传统的法律合约即可为网络参与者之间的协议提供协调和执行框架。它们可用于形式化两方之间的简单协议,组织的章程或创......
社区菲菲 · 2020-02-17
439阅读 · 0赞赏 · 0问答

2091

LK币

18

粉丝

102

笔记

感谢"区块链网"

这篇精彩的笔记,目前已经帮助

  • 0
  • 0
  • 9
  • 6
  • 2
喜欢0
链客社群 加入

微博进入

商务合作>

广告投放>

公司名称:北京链客行科技有限公司

联系方式:010-67707199

ICP备案号:京ICP备18032136号

Copyright:链客区块链技术问答社区 版权所有

感谢您的提问,问题被社区永久收入以便新人查看。一定要记得采纳最佳答案哦!加油!

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!