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

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

开发环境: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

从Steem见证人投票看EOS超级节点投票的实现方式

最近EOS超级节点竞选正进行得轰轰烈烈,几乎成为检验币圈大佬的标准了,那么EOS投票到底是怎么投的,作为一个持有EOS的用户,你到时需要如何投给心仪的节点呢?

其实EOS代码第一个版本基于BM之前的项目steem来的,所以从steem的见证人投票机制,我们可以一窥EOS投票体系的基础逻辑和方法。

Steem如何投票

通过steemit网站的菜单,我们可以找到“投票给见证人”的入口:https://steemit.com/~witnesses

Screen Shot 2018-04-07 at 20.46.32

页面上可以看到前50位见证人的名单。每个人可以投票给30位见证人(witnesses)。50名以内见证人的投票可以直接点图上点赞标识。
Screen Shot 2018-04-07 at 20.47.11

如果你想投的见证人在50名外,可以通过输入账户名来进行投票,最下面一栏你可以把票数代理给别人帮你行使投票权利
Screen Shot 2018-04-07 at 20.47.29

所以可以看到,投票时再任意时间进行的,你也可以随时修改你的投票,其结果会反应在之后的出块节点的选择上

那么接下来我们来聊聊超级节点

超级节点的成本

按照 EOS 团队公布的硬件门槛,想要当上节点最少需要达到亚马逊 AWSEC 2 主机 x1.32x large 型,128 核处理器,2TB 内存,2x1920GB SSD,25Gb 带宽。一台服务器的成本,一年需要 75.9 万人民币。当然实际成本应该更高,因为需要考虑测试服务器、备用服务器、以及人力成本。

超级节点的收益

最新消息是EOS下调了超级节点奖励(通过增发EOS),目前是每年1%,也就是1000万EOS,假如21个节点平分,按照目前EOS价格50元计算,每个节点分到47万EOS,价值2350万元(如果EOS不跌也不涨的话)。由此可以看出,即使奖励下调到1%,但相比起来成本几乎不值一提。

要多少票才能成为超级节点

现有的EOS投票系统中,每180秒代币持有者中的投票会计算一次,前21名的候选人就会在这轮当选。根据其他类似项目的投票经验(比如Lisk),当选节点的获得投票率在20-40%之间。EOS到六月份全流通时代币总量是10亿个,也就是当选节点的得票数量在2-4亿之间,获得3亿以上投票应该可以比较稳健的当选。

先有鸡还是先有蛋

投票需要EOS账号和计算EOS代币数量,EOS主网需要超级节点出块,超级节点需要投票产生,所以这是一个先有鸡还是先有蛋的问题。
目前还没有找到相关资料介绍这一块,大概率EOS社区会在6月1日完成ERC20代币映射,然后上线一个投票工具让用户导入EOS私钥并进行投票,最后在6月底由选出的第一批超级节点开始出块。

EOS Dawn 3.0 安装指南

EOS 发布了 Dawn 3.0,这个版本是功能相对比较完整的,与前面两个版本相比Bug也少了很多,所以是值得一试的版本。

本文将介绍 EOS Dawn 3.0 安装的几个关键步骤。

硬件配置

从之前社区的讨论,EOS本地测试节点的硬件最低配置大概如下:
CPU:云服务器 2核CPU
内存:8G以上
硬盘:100G以上

系统要求

目前EOS官方支持的操作系统及版本如下,其它的系统可能会出各种问题

Amazon 2017.09 and higher
Centos 7
Fedora 25 and higher (Fedora 27 recommended)
Mint 18
Ubuntu 16.04 (Ubuntu 16.10 recommended)
MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended)

安装方式

1 自动安装脚本

最为推荐的一种安装方式,基本上如果硬件配置和操作系统没问题,这种方式是比较安全的。

2 手动编译安装

如果第一种方式不能顺利安装,可以通过这种方式,需要手动安装依赖库的安装,下载代码,并进行编译
https://github.com/EOSIO/eos/wiki/Local-Environment#2-building-eosio

3 Docker安装

网络好的话,速度快,但需要对Docker比较熟悉,否则对chain进行配置会比较复杂。另外有时候国内下载docker官方镜像可能会比较慢。

安装流程(自动安装脚本的方式)

1 下载eos代码

git clone https://github.com/EOSIO/eos --recursive

2 执行自动安装脚本

cd eos
./eosio_build.sh

安装成功界面

3 启动单节点测试网络(Single Node Testnet)

cd build/programs/nodeos
./nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin

4 验证安装结果

你可以通过下面的命令查看当前正在运行的测试链信息

查看链信息

curl http://127.0.0.1:8888/v1/chain/get_info

查看版本

cd ~/eos/build/programs/cleos
./cleos -H 127.0.0.1 -p 8888 get info

按照过程中如果碰到阿里云无法连接Github的问题,可以参考下面这篇文章

https://steemit.com/github/@ericfish/github

EOS生态网站收集整理

EOS官方Github

https://github.com/EOSIO/eos
在这里你能看到BM大神最新的代码修改,以及EOS团队开发的生态周报项目,比如钱包之类的最新进展。

EOS官方文档

https://eosio.github.io/eos/
这是官方文档地址,包括如何配置开发节点,以及提供给智能合约开发者的接口方法。EOS开发者必读。

币乎的EOS板块

https://bihu.com/?category=hots&code=EOS
币乎的EOS板块有非常多EOS生态的文章,新入场的战友可以读读,最近关于超级节点的内容特别多。

数字货币钱包排行榜

http://tokenwallet.cc/
这个网站对市面上所有钱包做了打分和排名,包括最新出的EOS系钱包,比如E-Token,麦子钱包,蚂蚁钱包等。

EOS Go

https://eosgo.io/
独立EOS社区,第一时间报道EOS社区的各种消息,并每天组织群里各种重要消息。最近关于超级节点报名的消息都是由EOS Go整理的。

EOS Tracker

https://eostracker.io/
区块数据浏览器,目前基于测试网络,可以对EOS网络有一个直观的了解。

EOS Projects

https://eosprojects.org/
各种EOS生态项目的集中展示,随时了解各种EOS生态的新IDEA。

EOS Index

https://eosindex.io/
另外一个EOS生态项目列表,关注最新项目机会的必备网站。

EOS Drops

https://www.eosdrops.io/
EOS空投项目列表,比较有名的是Everpedia项目的空投,除此之外还有不少项目。

Dan的Blog

以前在Steemit: https://steemit.com/@dantheman
后来闹掰了,换成Medium了: https://medium.com/@bytemaster

《失控》中对EOS和ETH关系的预言

《失控》中的故事是这样的,哈佛大学有一个进化学者叫汤姆,这个汤姆做了一个很伟大的小实验,他用自己的电脑当了一回上帝,做了这么几件事:

1、在电脑里准备了一块专用空间,就好像画出了一个伊甸园。

2、汤姆他们写了一个80个字节的编码,就是一个可以自我复制的电脑程序,这就有点像上帝造人,所以就把这个80字节的编码给它起名叫亚当。然后把亚当放在了伊甸园里让它繁殖。

3、他们给伊甸园里还设定了一个叫收割者的程序,这个收割者吧会把这个空间里不能复制的或者疯狂复制的亚当全部都清除掉,换句话说,汤姆给这个世界引入了死亡的机制。

4、他们给这个亚当设定了一个微小的变化,就是这个亚当每一次自我复制的时候,都有10%的几率会产生一个非常微小的变异,但是变异的细节统统不管,这个就相当于赋予了亚当生物遗传变异的功能。

做完这几件事之后,Tom敲了一下回车,这个空间里的亚当就开始自我复制了起来。Tom等人就去休息了,等他们一觉醒来,发现这个空间里经历了一次史诗般的进化历程:

第一阶段:
80个字节的亚当疯狂的复制,一会就把整个空间给占满了;因为有突变的机制,进化就产生了,进化出了一个之后45字节的程序,然后这个45取代了亚当,成为了伊甸园的优势物种。查看这个45发现,它是一个寄生程序,靠吃掉80,也就是亚当来繁殖自己,随着亚当被消耗,45的数量也大幅下降。

第二阶段:
剩下的80进化成了79,变成79之后,就对45免疫了,所以原来的优势物种不行了,很快,又出现了一种51个字节的程序进化出来,以79为“食”,把“79”消灭到了几乎灭绝的程度。这个时候,又出现了一个神奇的事,就是在寄生程序45身上,又出现了一种“寄生虫”,它只有22个字节,它除了寄生在45身上复制自己的信息外,别的什么事都不做。最后22成为了“伊甸园”的主人。

Tom点开这个22发现它的内部非常简单,没有任何一个人类的电脑天才能写出这种天才代码。而这一切都是在Tom睡觉的时候发生的,这个例子说明了从下到上的系统有多强大。

ETH就是那个80,EOS就是那个45。

顺带提一句,这个例子也从一个角度说明了书名《失控》的意义,就是只有失控了才能产生多样性,进化体的天性就是喜欢钻常规的漏洞。

推荐几个讲区块链YouTube频道

几年前,学习区块链是很难的,因为资料少,而且都非常技术。现在有越来越多的资料和媒体出现,做一个价值投资者,整体看xx财经、x世界是没有太大作用的,都是短期消息,要理解本质的话,今天推荐几个youtuber会很有帮助:

Jackson Palmer

https://www.youtube.com/user/jacksonpalmerbc/videos
Jackson,程序员,以及著名的狗狗币创始人,关于他和狗狗币的故事非常有趣,可以自行谷歌。
他的播客新建不久,质量非常高,适合有一定技术背景的人看,属于中高阶水准,而且不配图,看的时候比较容易走神:)
印象很深是他讲去中心化交易所的那集,把目前所有方案统统撸了一遍,很透彻。
今年是狗年,祝愿狗狗币大涨。

Ivan on Tech

https://www.youtube.com/channel/UCrYmtJBtLdtm2ov84ulV-yg
Ivan也是一个程序员,他的俄罗斯口音英语很有意思。
EOS还没有i c o的时候,就看了一集他讲EOS,那时候就基本把EOS讲清楚了,然后就果断参与了。
他也属于技术流(这个世界目前看来还是程序员比较能解释清楚),但经常拿张纸涂涂画画,小白也比较容易理解。最近他的频道越来越有名气了,请到各种大咖,包括BM。

CryptoPortfolio

https://www.youtube.com/channel/UCI9POyyP-f93JHfkhr2ma2g
评测项目为主的播客,很多项目是国内不太能见到的,但是项目质量很好,如果希望了解国外的项目生态,非常值得看看。看看它之前评测的项目目前的价格,就知道播主选项目的眼光很好。
最近更新少了,前几个月一直在预测泡沫要破,不知道是不是因为这个原因已经离场了呢?
总之这个频道推荐的项目很值得关注。

最后,关于怎么打开YouTube,自己想办法吧,混币圈如果都不会上youtube……

关于区块链项目的开源许可证

区块链世界与以前项目一个很大不同在于开源。

世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。

拿以太坊的开源代码为例,py-evm是MIT协议的,solidity是GPL-3.0协议的。那么,它们有什么区别?

Screen Shot 2018-02-04 at 23.26.26

Screen Shot 2018-02-04 at 23.26.33

我所知道的最简单的区分方法:
bg2011050101

也就是说 py-evm 的衍生项目是可以不开源的,而 solidity 的衍生项目是必须开源且采用同样许可。

换句说,对 py-evm 的改动可以很自由,对 solidity 的改动则必须公布改动的细节。

最后贴两个有用的链接:

帮助你快速选择许可方式:https://choosealicense.com/
帮助你了解区块链项目的开源情况和Github地址:https://cryptocodewatch.com

EOS社区第一空投代币 IQ Token

首先复述EOS韩国发布会上提到的这个air drop新闻,Everipedia团队宣布他们会通过空投IQ token给到EOS持有者。时间是6月15日下午15点进行快照,在EOS主网启动之后按1:1或者超过1:1的比例空投IQ币。

airdrop

什么是Everipedia

Everipedia的文章标记、审核、保存都将基于EOS。整个编辑过程将基于智能合约,同时将通过token系统激励写作者,从而创建一个更加真实准确的pedia平台。

Wikipedia的问题

  1. 过于中心化,文章的编辑和审核由少数人决定
  2. 缺少商业模式,目前的捐赠模式不能长期维持
  3. 缺少激励机制,参与的编辑没有工资,更多是凭证兴趣
    这些问题导致最近Wikipedia的编辑越来越少。

什么是IQ

根据白皮书草稿,IQ总量1亿个,其中50%将分发给社区,另外30%将在100年里分发给内容的编写者和审核者。剩下的20%留给开发团队。
这种基于社区的内容价值,通过token分享给社区的模式其实在steem中已经被验证过。

团队、技术架构

不久前,Wikipedia的联合创始人Larry Sanger宣布加入Everipedia作为CIO。
技术架构用EOS + IPFS结构,EOS负责账户、数据,IPFS负责图片和视频存储,真正完成去中心。

iqtoken

竞品

目前唯一竞品 LUN, Lunyr基于以太坊生态,目前测试版已上线。Lunyr2017年4月启动,当时众筹成本是8元,目前价格是300元,将近40倍。

更多消息可以关注他们的官网电报群

区块链将如何改变软件业

本文主要探讨软件业的下一个潮流:区块链,将对整个产业造成的影响。区块链的核心当然有技术的部分,但其最大的价值还是因为其具有的经济特性对传统价值分配进行改造。

收费问题

软件业诞生之初要解决的第一个问题就是收费问题,或者说版权的问题。这个问题到今天为止中国解决都不算好,比如中国的开发设计团队天生有一个不太上台面的优势,就是大概率情况下,我们电脑上的工具软件比国外团队要更好,当然大多不是正版的。

然而,区块链世界能够从根本上颠覆传统软件的付费模式,目前最好的例子就是以太坊。以太坊通过Gas收费,Gas的数量是按照计算量收的。没错,就是每一个加减乘除,就是能够做到这么细。

软件外包

传统软件世界另一个巨大的产业:软件外包。一直以来软件外包行业都有一个无法调和的矛盾:外包公司追求的是最短时间、最少人力成本、收最多的钱。而项目方追求的是用最少的钱,获得质量高、长期可维护的软件产品。这个矛盾存在,让双方有一个共同的目标几乎是不可能的,反而把精力都消耗在产品验收阶段勾心斗角中去了。

在区块链时代,项目方与外包公司的合约会直接通过代币进行,因为代币价值与软件质量直接相关,外包公司与项目方会更容易在目标上达成一致。而通过智能合约锁定逐步释放代币,则可以解决长期性的问题。

开源软件

Github是互联网时代的伟大产物,他之所以被称为最大的同性交友网站,因为上面的程序员大多是因为热爱,没有酬劳的为开源软件贡献代码。但问题是,如果开源软件产生价值,难道这些价值不应该被分享个它的生产者吗?

未来,一定会出现一个基于区块链和Token的Github,每个项目可以通过Token来实现价值变现。有人把Token模型称为一种打赏码农的方式,有了这种新的模型,开源社区的价值将将进一步提升。

软件部署、发布和销售

互联网 App 的核心价值:帮用户承担责任和风险,这里面包括系统的搭建、服务器运维等等。因为互联网公司的存在,我们不必像互联网早期那样每个人都要去当个人站长,写个博客还要从自己去买服务器开始。当然同时,互联网公司也因此获取大量个人用户的数据,并从中获得巨大的利益。

区块链 DApp 时代,互联网公司的概念应该都会消失。
去中心化的组织,比如EOS将提供服务器支持、运维和数据存储。
开源社区负责代码的开发、产品设计。
而普通用户将扮演两个角色:能够掌控自己数据的DApp用户,和DApp的投资者。