指南

Q:FIBOS 是新开了一条链码?这条链 和 EOS 主链有交互吗?

A:是新链。

Q:合约是运行在 EOS 公链上,还是 FIBOS 有自己的公链?

A:FIBOS 自己的公链。

Q:开发教程在哪里?

A:请点右上角的开发者文档。

Q:为什么会出现以下问题?

问题4.png

A:要装 openssl。还要装 libcrypto.so.6。

Q:FIBOS 硬件方面没啥特别要求吧?

A:使用 FIBOS 二进制文件测试开发用没有硬件要求,如果从源码开始编译需要内存 8G 以上。

Q:为什么 FIBOS.IO 找不到文档呢?

Q:那跟 EOS 交互 是什么意思?

A:可以在 EOS 上直接兑换 FO。但 FIBOS 和 EOS 采用了不一样的 Token 发行机制,所以不对 EOS 用户空投。

Q:FO 是在 EOS 上发行了一个 Token ?

A:是新链上发行了一个 Token。

Q:FIBOS 有几个节点?

A:也是 21 个超级节点。

Q:FIBOS 不需要依赖 EOS 主网么?

A:不需要。

Q:FIBOS 本身开源了吗?

A:有开源时间表,目前暂未开源。

Q:EOS 环境会和 FIBOS 冲突吗?如何彻底清除之前部署的 EOS 环境?

A:会,在 Node.js 中增加参数 :fibos.load(‘chain’, {‘delete-all-blocks’: true});或者:查询一下 data 和 config 目录,手工删除一下即可。

Q:数据库放在哪个地方,如何清掉。

问题9.png

A:配置一下即可。

Q:fibos.start();在 log 里打印出来的是产生的区块吗,用途是?

问题10.png

A:是的。包含区块生产来源,区块高度,哈希,时间,延迟,等等信息。

Q:FIBOS 是把 EOS 打包进去了吗?

A:是的。

Q:目前区块的产生频率是 1 秒钟 2 个,这个频率可以通过修改配置文件来修改吗?

A:同 EOS 规则。

Q:FIBOS.IO 账号名可以跟 EOS 主网的账号名设置成一样的么?

A:可以。

Q:遇到报错 sudo fibos client.js 拒绝连接

问题1.png

A:连接的 IP 和端口号是多少?

Q:默认的。

A:运行 client.js 之前需要先启动本地的 FIBOS 节点。

Q: 问题2.png

A:Node.js 的脚本在启动 chain 插件时需要加上:

fibos.load("chain", {
  "delete-all-blocks": true
});

再试一下。

Q:刚才运行节点以后关掉了,然后再开开就这样了,对吗? 问题3.png

A:是的。

Q:按照教程编译时报错如下,需要制定 EOS 的版本进行编译吗?

2018-08-01T08:47:07.971 thread-0   se_wallet.cpp:286             check_signed         ] Application does not have a valid signature; Secure Enclave support disabled
libc++abi.dylib: terminating with uncaught exception of type boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >: unable to find plugin: eosio::account_history_api_plugin
Abort trap: 6 (core dumped)

A:本机有 EOS 吗?

Q:有。但编译的版本还没 install,用的是脚本下载的 0.26 报这个错。用 Github 上的版本,编译出来是 0.25。但是下载的 FIBOS 启动报错的。

A:暂时还没有开源,所以不支持自行编译。Github 上只是最初的代码,不是可运行的。我们会根据开发进度和项目进展,尽快开源。 建议你使用快速安装方式:curl -s https://fibos.io/download/installer.sh|sh 。建议删除 EOS 的 data 以及 config 目录,Mac 环境默认在 ~//Users/Anleb/Library/Application Support/eosio/。

Q:Window下环境,按照这个说明一步一步来的,走到“运行 FIBOS 开发环境”时报错显示如图:

问题6.png

A:清理一下 data 目录,具体在文档中查看如何查询 data 目录。

Q: 问题7.png

A:是的,但是节点进程退出的时候不要猛按 ctl_c,按一次,等他退出,否则下次启动还会报错。

Q:用 EOS 搭了 3 个节点的私链,现在把这 3 台运行的 Nodeos 都中止后,然后重新启动各节点的 Nodeos 启不来了呢,是什么原因呢?

A:什么错误,三个节点都出块吗?

Q:三个节点轮流出块(创世节点不在 3 个节点里面)然后终止运行三个节点,再去启动 Nodeos,发现无法出块。

A:整个系统停止了,没有人出块了,必须从 BIOS 重新开始。

Q:重新出来是不是之前产生的块都不能接着用了?

A:确实如此,因为没有人决策谁先出块,与策略有关系,这是一个已知的 Issue。

Q:只能将数据删了从头开始重新配置一下吗?

A:是这样。

Q:目前有基于 docker 的么?

A:社区里已经有用户提出并有用户在解决。

Q:刚刚开始搭建,找不到路径

问题8.png

A:检查有无 /usr/local/bin 这个目录,若没有则新建一个。

Q:是否可以这样理解:FIBOS 主要由 C++ 实现,是把 js 风格的代码转换成 C++ 的 EOS 源码的接口来执行

A:FIBOS 扩展了 EOS 的合约虚拟机,在 wasm 虚拟机基础上增加了 js 虚拟机,支持直接部署 js 智能合约。

Q:FIBOS 跟 EOS 什么关系呢? 是类似 ETH 上的 DAPP 吗?

A:FIBOS 可以算是 EOS 的侧链,互为侧链。

Q:是否后面可以通过 FIBOS 来把 DAPP 部署到 EOS 主网上?

A:不可以,因为不是编译为 WASM 的,所以只能在 FIBOS 的主网上跑。直接用 js 开发 DAPP,部署到 FIBOS 上。

Q:那等于是只是协议之类的用了 EOS,FIBOS 跟 EOS 是完全两个东西?

A:FIBOS 基于 EOS,在此基础上支持 js 直接部署智能合约。

Q:我看文档,怎么觉得 FIBOS 算是 Node.js 开发环境呢?跟区块链无关?是我理解错了吗?

A:FIBOS 就是 EOS + FIBJS 。我们在用 js 降低 EOS 开发智能合约的门槛。

Q:哪里可以查看到 Demo?

A:开发文档里有 Demo。一小时学会。用群里粉丝的原话:之前没接触过 EOS,只接触以太坊,刚跟着教程玩了一遍,最大的感触就是,我好像可以平滑转移到 EOS 了。

Q:abi 是要手写的么?

A:目前是手写 abi,很快我们会发布相关工具生成 abi。

Q:源码的要求和 EOS 一样吗?

A:从源码编译的话,编译过程需要经历编译 EOS,编译 FIBJS,编译 FIBOS。

Q:如何用 FIBOS 写个 Hello World?

A:照着教程一小时实现 Hello World。

Q:那 js 虚拟机也是把 js 转换成 C++ 再转换成 WASM 的吗?

A:不通过 WASM,js 虚拟机是用 V8 实现的,直接 jit(just in time)成机器码。EOS 合约每次编译都要把 stdib 和很多宏展开,导致合约结果很大,eosio.token 很简单的合约,编译出来要 14k,同样的逻辑,用 js 部署,只需要 1k 左右.

Q:FIBOS 支持哪些系统?

A: Ubuntu16.04,Mac,Windows,其他系统会有不兼容的情况发生。Mac 系统需要升级到最新版,需要注意 openssl 升级到最新版本。(Windows 需要安装 Linux 虚拟机)

Q:js 同目录创建 Web 目录'*': http.fileHandler(path.join(__dirname, 'web'))访问报 404

A:如 Web 目录中没有 index.html,则需要创建一个 index.html 再访问。

Q:请问节点服务控制台是箭头所指的这个吗?

问题5.png 但是为什么运行了fibos call.js之后什么都没打印出来呢。

A:你应该有 2 个控制台:节点服务控制台(fibos node.js),运行脚本的控制台。日志会在节点服务控制台输出。

Q:参考开发指南,发布一个简单的 js 合约的时候,我想知道这个合约记到哪个块里去了。就把手册里提供的代码稍微改了一下,但是,输出的信息当中,唯独没有这个块的编号?

var result = ctx.hiSync('hello', {
    authorization: contractName
});
console.log(result);

A:Produced block 为区块编号。

Q:查阅 Eosjs 的文档没有找到关于 contractSync 方法的返回值的说明。有没有关于这方面的链接呢?

A:暂时没有。

Q:FIBOS 账号和 EOS 账号通用吗?通用的意思是这个账号下可以存放 EOS 和 FO?

A:FIBOS 账号和 EOS 账号不通用。

Q:EOS 账号创建需要消耗 EOS,FO 账号创建时是否也一样?

A:是的,创建账号需要消耗内存,预存 cpu 和 net, 需要消耗 FO。

Q:这 9 亿多个 EOS 是怎么和 EOS 网络上的对应起来的?

A:FIBOS 中少的 EOS 数量就是 EOS 主网中基金会账号多的数量。

Q:FIBOS 是公链吗?谁都可以加入作节点?

A:是的,谁都可以。

Q:出块节点需要认证吧?

A:需要注册,并阅读并遵守相应的规范。

Q:共识机制是和 EOS 一样的 DPOS?

A:是的。

Q:要和 EOS 一样搞投票吗?

A:是的。

Q:可以用 EOS 生成的 keypair 注册 FIBOS 的账号吗?

A:可以,不过需要把公钥开头 EOS 换成 FO。

Q:为什么查询需要私钥,其他只需要公钥?(查 EOS 到账和查 FO 余额)

A:不需要私钥。

Q:FIBOS 的私钥分 active 和 owner 吗?

A:这是权限分 active 和 owner。

Q:fibos--install fibos.js,这个在哪里安装?

A:项目根目录。

Q:只能用 FIBOS 去注册吗?为什么不能再 postman 上调用接口去创建?

A:跨域了。

Q:如果想把 FIBOS 上的 EOS 转到 EOS 主网上,也是调用 transferSync 吗?

Q:fibos windows下目前不支持嘛?

A:如果要自己架节点,目前暂时不支持,如果需要做一些客户端开发,可以使用 fibjs。fibjs 是支持 windows 的,也支持树莓派。

Q:子合约账号的概念类似于资金预授权?

A:可以这么认为。

Q:为什么要用 FO 而不用以太坊的 EOS

A:因为 EOS 不支持 JS 开发,部署开发困难,用 FIBOS 测链进行开发比较简洁。而且 FIBOS 承认 EOS 的价值,所以用户可以在 FIBOS 上使用 EOS 兑换 FO,由于 FO 价格比 EOS 低,还可以降低开发中的 RAM 成本。

Q:项目成功的基础是项目方要有合理的获利模式,FIBOS 团队靠什么获取?

A:FIBOS 基金会是非盈利机构,是通过分期逐步解锁锁仓 FO 获得继续发展基金的。解锁的部分发行机制是 bancor,有效约束项目方,绝不损害持币人的利益,是 fibos token 合约的设计目标。

Q:多个超级节点的话,记账顺序按什么机制排呢?又不用挖矿。

A:默认名称排序。