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

in #eos2 years ago

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

开发环境: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](http://7b1fck.com1.z0.glb.clouddn.com/2018-04-23-Screen Shot 2018-04-20 at 09.19.25.png)

###单主机多节点配置按照官网执行完毕之后ctrl+c关闭了之后现在重启起节点的时候报错了是什么原因呢?
std::exception::what: could not gain write access to the shared memory file
WechatIMG370
应该是ctrl+C退出时,nodeos的进程没有kill掉,需要手动kill。

##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](http://7b1fck.com1.z0.glb.clouddn.com/2018-04-20-Screen Shot 2018-04-19 at 14.38.08.png)
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](http://7b1fck.com1.z0.glb.clouddn.com/2018-04-24-屏幕快照 2018-04-24 下午12.43.01.png)

看下钱包是否解锁,钱包里是否导入了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调用也可以直接与主链交互,实现去中心和中心结合的应用。