FIBOS入坑指南——本地开发环境搭建
FIBOS是什么?
FIBOS 是一个结合 FIBJS 以及 EOS 的 JavaScript 的运行平台,它使得 EOS 提供可编程性,并允许使用 JavaScript 编写智能合约。FIBOS 平台的出现让第三代 EOS 智能合约编程变得简单、快捷!其项目官网为 https://fibos.io/
1、快速安装稳定版的FIBOS
curl -s https://fibos.io/download/installer.sh | sh
2、一键安装开发环境
由于区块链的复杂性,不管是 EOS 还是 FIBOS 搭建开发环境都比较繁琐,不过 FIBOS 官方已经提供了一个一键搭建本地开发环境的工具,我们执行以下命令将其从 GitHub 下载下来。
git clone https://github.com/FIBOSIO/fib-testnet.git
接着进入 fib-testnet 文件夹,执行安装相关的包依赖即可,依次执行以下两条命令,如下图。
cd fib-testnet
npm install
可以先尝试启动一下,在 fib-testnet 目录执行以下命令,如果成功,将会开始出块,如下图。
fibos index.js dev
curl http://127.0.0.1:8801/v1/chain/get_info
3、创建一些密钥
var FIBOS = require('fibos.js');var priKey, pubKey;for (var i=0; i<3; i++) {priKey = FIBOS.modules.ecc.randomKeySync();pubKey = FIBOS.modules.ecc.privateToPublic(priKey);console.notice('\n私钥: '+priKey);console.notice('公钥: '+pubKey+'\n');
}
然后打开一个新的终端,进入 fib-testnet/init/ 文件夹中,执行 fibos generate.js ,即可如下图获得随机生成的3组密钥对。
4、创建一些账号,并转入一些 FO Token
有效的 FIBOS 账户名和 EOS 类似,都必须是由 12345.abcdefghijklmnopqrstuvwxyz 组成,且长度小于等于12个字符串。其中小于12个字符串的账户名由系统的智能合约控制,需要竞价获得。为了方便,我们这里使用12个字符串长度作为账户名,分别是 computer1111、computer1112、computer1113,同时分别对应以上三组密钥对。
进入 fib-testnet/init/ 文件夹中,新建一个 init.js 文件,输入以下 JS 代码,用于创建3个账户,密钥对最好自行修改一下。
var config_dev = require('../common/config_dev.json');
var fibossystems = require('../common/fibossystems');
var systems = require('../common/systems');
var config = require('../config.json');
var FIBOS = require('fibos.js');// 你可以在以下 accounts 这个对象里,增加或修改自己喜欢的FIBOS账户,密钥对最好自行修改一下
var accounts = {"computer1111": {"priKey": "5K3HGUKEwapH1GFrHjhtgr5sbqkLnFHrZL3ddR6v7FgrYetnQ2a","pubKey": "FO5Xx9fdHUgCEe5huzedVGE2PTewhVsdNCcTg3cNeWN6KPVRF738"},"computer1112": {"priKey": "5JiU8Tzgv87Wx79mrmdkGjbaom1eAqxTQeGSoC63sziQ8eexRA8","pubKey": "FO5Au67waA8UN9xfieK3KPGSX2jRzRRvFNvPhsBvtejGcXbA8UwG"},"computer1113": {"priKey": "5J5i5mtXep7fdHNYWjP9XpoZ2srFgE24r1GTHvTt9sU1BMPqby3","pubKey": "FO6UYUU63Q4rFsbFV8KQLQivYyyUmU45fiCdv1D8nouXicooSsqr"}
};function initClient(_keyProvider, _httpEndpoint, _chainId) {return FIBOS({chainId: config.chainId,keyProvider: _keyProvider || null,httpEndpoint: _httpEndpoint || config_dev.httpEndpoint,logger: {log: null,error: null}});
}var client, res, ctx;client = initClient(systems.concat(fibossystems).map(function(d) {return d.private_key;
}));// 创建账户
client.transactionSync(tr => {for (account in accounts) {// 创建账户tr.newaccount({creator: 'fibos',name: account,owner: accounts[account].pubKey,active: accounts[account].pubKey}, {authorization: 'fibos'});// 购买内存tr.buyrambytes({payer: 'fibos',receiver: account,bytes: 1024 * 1024 * 2}, {authorization: 'fibos'});// 抵押 FO 获得 NET、CPU 资源tr.delegatebw({from: 'fibos',receiver: account,stake_net_quantity: '100.0000 FO',stake_cpu_quantity: '100.0000 FO',transfer: 1}, {authorization: 'fibos'});console.notice('created '+account); }},{authorization: 'fibos'
});console.notice('');// 转 10000.0000 FO 到一些账户中
ctx = client.contractSync('eosio.token');for (account in accounts) {ctx.extransferSync('fibos', account, '10000.0000 FO@eosio', 'FO to '+account, {authorization: 'fibos'}); console.notice('extransfer 10000.0000 FO@eosio to '+account);
}console.notice('');
进入 fib-testnet/init/ 文件夹中,执行 fibos init.js ,如下图,即完成 computer1111、computer1112、computer1113 账户的创建,同时每个账户拥有 10000 FO 余额了,可以用来做各类转账、兑换测试。如果出错,需要查看一下本地 fibos 节点是否正在运行,在浏览器输入 http://127.0.0.1:8801/v1/chain/get_info
5、后记(完)
至此,本地的 FIBOS 开发环境基本搭建完成,如果你想试试在本地环境编写、部署、调用智能合约,可以参考 FIBOS 官方开发文档,当然,后续有时间,我也会把在 FIBOS 智能合约开发过程中踩到的坑写写。如果想了解 FIBOS 主网是如何启动的,启动顺序是怎样一个过程,节点编程时遇到的问题,那么这个 fib-testnet/lib 文件夹下的内容很值得你去研究。
FIBOS入坑指南——本地开发环境搭建相关推荐
- DolphinScheduler本地开发环境搭建
DolphinScheduler本地开发环境搭建 Apache DolphinScheduler 关于DolphinScheduler 简单易用 高可靠性 丰富的使用场景 高扩展性 前置条件 克隆代码 ...
- 极智开发 | 阿里云ECS本地开发环境搭建
欢迎关注我的公众号 [极智视界],获取我的更多笔记分享 大家好,我是极智视界,本文介绍一下 阿里云ECS本地开发环境搭建. 之前介绍过华为云的开发环境搭建,有兴趣的同学可以移步我的这篇&l ...
- 极智开发 | 华为云ECS本地开发环境搭建
欢迎关注我的公众号 [极智视界],获取我的更多笔记分享 大家好,我是极智视界,本文介绍一下 华为云ECS本地开发环境搭建. 云 上的 AI 应用部署,一定是 AI 应用部署的重要分支.云( ...
- uniapp调用c语言方法,uni-app 入坑指南-web开发
编辑推荐: 本文重点介绍了 uni-app 入坑指南,方便大家更好的了解 uni-app 本篇只讲述 uni-app,不与其他类似框架进行对比 本文来自于博客园,由火龙果软件Alice编辑推荐. 什么 ...
- 我的 Serverless 实战 — 云函数本地开发环境搭建
文章目录 一.CloudBase CLI 开发环境 二.Node.js 安装 三.CloudBase CLI 安装 四.CloudBase CLI 关联腾讯云账号 五.使用本地开发环境创建云函数 六. ...
- 【OpenStack】OpenStack系列1之OpenStack本地开发环境搭建向社区贡献代码
加入OpenStack社区 https://launchpad.net/,注册用户(597092663@qq.com/Admin@123) 修改个人信息,配置SSH keys.OpenPGP keys ...
- Redash本地开发环境搭建
开发环境搭建步骤 建议使用mac和ubuntu系统,同事刚开始使用windows安装,过程中遇到很多问题,临时改用ubuntu系统,本文适用mac和ubuntu系统. 1.github获取代码及安装需 ...
- Update 15.2 Dynamics 365 Business Central 2019 Release Wave 2 W1本地开发环境搭建报错问题-解决方法
1.成功安装Update 15.2 Dynamics 365 Business Central 2019 Release Wave 2 W1后,NavServer已经启动,在VS环境中 搭建本地开发环 ...
- redash+mysql_Redash本地开发环境搭建
开发环境搭建步骤 建议使用mac和ubuntu系统,同事刚开始使用windows安装,过程中遇到很多问题,改用ubuntu系统,本文适用mac和ubuntu系统. 官网建议使用虚拟机或Docker W ...
最新文章
- LeetCode简单题之使每位学生都有座位的最少移动次数
- vue element 导出blob后台文件流xlsx文件自动下载(且规避乱码)
- BCE或能成为BCH的一个侧链
- go 求两个时间相差的天数
- java取json对象的值_java的JsonObject对象提取值方法
- wetask.cn领度任务全新试用体验
- 装饰器模式在 Collections 类中的应用
- 大数据项目实训教学解决方案
- 【上班摸鱼系列】文字选择类游戏:《职员默示录 - 启》末日丧尸爆发,你,是什么下场!?
- oracle连续周数,oracle周数计算
- xp重启计算机的快捷键,xp电脑关机重启快捷键是什么
- R语言循环读取excel并保存为RData
- Android 自定义相机黑屏
- Qt中update()和repaint()的区别
- stm32设置延时函数
- 计算机辅助英语词汇教学,计算机与网络辅助大学英语词汇教学
- CrackMe160 学习笔记 之 044
- es文件创建局域网服务器,大神来教你XBMC和ES文件浏览器局域网共享
- 【上海赛区】2022数学建模国赛获奖名单公布
- 【BLE】广播数据包结构讲解,五颗蓝牙芯片对比
热门文章
- python公约数公倍数_python 公倍数,公约数问题
- html首页我的待办,我的待办.html
- Contiki介绍及参考资料
- 招聘网站的几个新控件(2)
- 论文阅读:Pointwise Convolutional Neural Networks
- jdk17下载详细步骤
- 自发和诱发电生理活动之间的动态关系
- 计算机基础及office办公软件应用,计算机基础及Office办公软件应用.pptx
- 解决Past duration X.XXXX too large警告
- React Native加载动画,lottie-web 将json解析成动画