EOS 技术术语表

组件 Program

包含了nodeos、cleos等一系列EOS常用的工具

nodeos

服务器端区块链节点组件

cleos

EOS 的命令行工具,负责与区块链系统的交互、管理钱包、管理账户

keosd

操作和管理钱包的服务器端工具(看源代码发现其实也是调用的wallet_api_plugin)

插件 Plugins

外界与EOS链交互由插件提供支持,比如wallet_api_plugin提供钱包接口、chain_api_plugin提供链接口、account_history_api_plugin提供账户历史记录接口

钱包

存储密钥对(公钥和私钥)的仓库,在区块链上执行的操作需要经过钱包的签名。

账户

拥有相应访问权限的链上的安全主体,可以类比为我们计算机上的账户。

智能合约

操作 与 自动化操作处理程序 相结合,便是 EOS 定义的智能合约。

交易 Transaction

一组Action操作的集合,也可以理解为执行智能合约。

操作 Action

一次对区块链的修改,一个Transaction有多个Action组成。
每个账户可以给其它账户发送结构化的操作( structured Actions )。

操作处理程序 Action Handler

其它账户定义代码来处理收到后的操作。EOS为每个账户提供自己的私有数据库,只能由该账户的操作处理程序(Action Handler)访问。操作处理程序还可以发送操作到其它账户。

系统合约

在 EOS 安装包中就默认存在的那些合约,具体包括什么可浏览 eos/contracts 文件夹。

bios 合约

可以直接控制其它账户的资源分配,且可以访问其它的专属API调用(需增加内容)。

currency 合约

提供了代币的发行与转账功能。

eosio

启动EOS区块链的默认账户。

【柚子开发讨论群】问题整理

本文记录【柚子开发讨论群】中探讨的一些问题和答案,不定期更新,供大家参考

开发环境:EOS Dawn 3.0

EOS架构设计

EOS可以支持多少并行链?

由于跨链通信,我们可以根据需要在不同链之间分配工作量。代币可以可靠并且安全的在不同链之间转移。由于相同(或不同)矿工并行运行1000条链,我们可以看到每秒数百万的交易。
EOS跨链实现目前没有太多资料,理论上跨链协议没有并行数量限制。目前规划,EOS并行链不会放在今年6月上线,而在大约年底左右实现。

EOS的共识机制插件在哪里,是如何实现的

可以查看 eosio.system

对于一个企业应用,有很多用户,但这些用户应都不能算EOS的账号吧,只是一个企业申请一个账号即可,企业用户的账号怎么分开呢

目前测试网络token费用这块还不能测试,不过以创建账号为例:
cleos create account eosio 1.a EOS7ZkKkWu8koY2qqyuv1Z7djZuaddjZuHhbBHkac5JWNUCsY21H4 EOS7ZkKkWu8koY2qqyuv1Z7djZuaddjZuHhbBHkac5JWNUCsY21H4
create account 后面的 eosio 就是为完成这个操作进行付费的账号,eosio可以是进行付费的企业账号

EOS测试环境

如何同步两个节点

nodeos –p2p-peer-address host:port
https://github.com/EOSIO/eos/wiki/Testnet-Single-Host-Multinode

在启动节点的时候,报错

WechatIMG287
解决方案是
./nodeos –resync

最新的只有单主机多节点的案例,多主机的教程在哪?

目前还没有,应该会更新的
Screen Shot 2018-04-20 at 09.19.25

单主机多节点配置按照官网执行完毕之后ctrl+c关闭了之后现在重启起节点的时候报错了是什么原因呢?

std::exception::what: could not gain write access to the shared memory file
WechatIMG370
应该是ctrl+C退出时,nodeos的进程没有kill掉,需要手动kill。

Mac编译报错:“”

WechatIMG2390
homebrew下载安装包连接问题,需要-翻-墙-

EOS智能合约

现阶段也只能用c+开发智能合约吗?

是的,第三方正在开发的语言是Rust, Python, and Solidity,不过EOS官方说这些第三方语音会对将来性能扩展有影响,所以还是建议用c++

WREN语言 哪里有介绍?

EOS最初期,BM说要支持WREN开发智能合约,不过后来放弃了这个方向。
目前推荐的智能合约开发语言是C++,第三方正在开发的语言是Rust, Python, and Solidity。C++还是性能首选。

试了下demo,cleos set contract debug debug.wast debug.abi这句会报错,感觉是WASM报错

WechatIMG152

编译cpp报错

fatal error: 'eoslib/eos.hpp' file not found
Screen Shot 2018-04-19 at 14.38.08
Ubuntu默认安装的环境配置问题,部分目录没有include,而且文件夹名不同版本有修改,比如eoslib在新版已改为eosiolib。目前的方法是等后续版本更新。
也可以在其它环境编译wasm,比如在Mac编译成webassembly后部署到服务器。

有人懂基于EOS发币流程吗?

Dawn 2.0: https://blog.csdn.net/zhongdahong/article/details/79676612
Dawn 3.0: https://github.com/EOSIO/eos/wiki/Tutorial-eosio-token-Contract

创建货币的"can_freeze":0, "can_recall":0, "can_whitelist":0这三个参数详细含义是什么,怎么改和使用?

freeze 是否可以冻结 recall 是否可以回收 whitelist 是否设置白名单
那可以冻结的设置完之后,冻结的量怎么去制定?官方的是通过设置账户或货币的frozen参数,没有那么细致的考虑
WechatIMG208

介绍一下 multi_index

https://garanto.org/eosio-eos-automatic-caching-of-multi_index-instances-and-a-convenient-way-to-get-the-appropriate-multi_index-instance-2199.html

https://eosio.github.io/eos/classeosio_1_1multi__index.html

EOS怎么实现网页和智能合约的交互

可以用js
https://github.com/EOSIO/eosjs

部署bios的时候报错:signatures do not satisfy declared authorizations

2018-04-24

看下钱包是否解锁,钱包里是否导入了eosio的秘钥,在配置文件里面找

EOS应用

eos可以做游戏嘛?可以放到手机上运行吗?

http://blog.eosdata.io/index.php/2017/09/20/eos-xi-tong-jia-gou-he-chuan-tong-hu-lian-wang-yin/
EOS会提供一个基于ipfs的文件存储,里面可以部署前端页面,前端页面在手机端渲染。页面可以与eos链上的智能合约交互。
https://eosio.github.io/eos/
基于api的RPC调用也可以直接与主链交互,实现去中心和中心结合的应用。

扫码加入柚子开发讨论群
canaan20180423