账户

Tips:我们将在9.4日关闭免费注册 FIBOS 账号通道,后续想要注册 FIBOS 账号的用户,可以通过学习本文档,让已经拥有 FIBOS 账号的用户替你创建。

什么是账户

生成公私钥

Tips:生成的公私钥对需要将私钥妥善保存,并且切勿向任何人泄漏你的私钥!请别人帮人注册 FIBOS 账号只需要提供你的公钥即可,任何以帮忙注册 FIBOS 账号为名索要你的私钥的创建者都是欺骗者!

使用 fibos.js 的 ecc 生成

1
2
3
4
var FIBOS = require('fibos.js');
var prikey = FIBOS.modules.ecc.randomKeySync(); //私钥
var pubkey = FIBOS.modules.ecc.privateToPublic(prikey); //公钥
console.log('公钥: %s\n私钥: %s',pubkey,prikey);

创建账户

新账户创建

调用 newaccount 方法和参数名解释如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var FIBOS = require('fibos.js');
var fibos_client = FIBOS({
chainId: '68cee14f598d88d340b50940b6ddfba28c444b46cd5f33201ace82c78896793a',
keyProvider: 'creator_priKey',
httpEndpoint: 'http://api.testnet.fo',
logger: {
log: null,
error: null
}
});

fibos_client.newaccount({
creator: "Creator Name", //创建者的账户名
name: "Account Name", //被创建者的账户名
owner: "Owner Key", //被创建者账户 owner 权限公钥
active: "Active Key" //被创建者 active 权限公钥
});

购买内存

在链上存贮账户信息是需要消耗内存的,创建者需为被创建者购买内存来存放新账户的信息。

调用 buyrambytes 方法和参数名解释如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var FIBOS = require('fibos.js');
var fibos_client = FIBOS({
chainId: '68cee14f598d88d340b50940b6ddfba28c444b46cd5f33201ace82c78896793a',
keyProvider: 'creator_priKey',
httpEndpoint: 'http://api.testnet.fo',
logger: {
log: null,
error: null
}
});

fibos_client.buyrambytes({
payer: 'eosio.token',//创建者的账户名
receiver: 'Receiver Account',//被创建者的账户名
bytes: 4096 //消耗的内存大小
});

抵押资源

创建者为被创建者抵押 FO 获取 CPU 和 NET ,让新账户能够进行转账。

调用 delegatebw 方法和参数名解释如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var FIBOS = require('fibos.js');
var fibos_client = FIBOS({
chainId: '68cee14f598d88d340b50940b6ddfba28c444b46cd5f33201ace82c78896793a',
keyProvider: 'creator_priKey',
httpEndpoint: 'http://api.testnet.fo',
logger: {
log: null,
error: null
}
});

fibos_client.delegatebw({
from: 'from',//创建者的账户名
receiver: 'Your_Account',//被创建者的账户名
stake_net_quantity: '0.1000 FO',//创建者为被创建者抵押 FO 获取 NET
stake_cpu_quantity: '0.1000 FO',//创建者为被创建者抵押 FO 获取 CPU
transfer: 1//代表抵押资源同时是否将对应通证转账给接受者
});

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var FIBOS = require('fibos.js');
var fibos_client = FIBOS({
chainId: '68cee14f598d88d340b50940b6ddfba28c444b46cd5f33201ace82c78896793a',
keyProvider: 'creator_priKey',
httpEndpoint: 'http://api.testnet.fo',
logger: {
log: null,
error: null
}
});
var r = fibos_client.transactionSync(tr => {
tr.newaccount({
creator: 'creator_account',
name: 'your_account',
owner: 'your_owner_publicKey',
active: 'your_active_publicKey'
});
tr.buyrambytes({
payer: 'creator_account',
receiver: 'your_account',
bytes: 4096
});
tr.delegatebw({
from: 'creator_account',
receiver: 'your_account',
stake_net_quantity: '0.1000 FO',
stake_cpu_quantity: '0.1000 FO',
transfer: 1
});
});
console.log(r);

执行代码,即可帮助别人成功注册账号。

打印结果如下(部分截取):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'act': {
'account': 'eosio',
'name': 'newaccount',
'authorization': [{
'actor': 'fibostest123',
'permission': 'active'
}],
'data': {
'creator': 'fibostest123',
'name': 'xinchengdai1',
'owner': {
'threshold': 1,
'keys': [{
'key': 'FO7yLv8FvFhFCjajcqgnJJFHBUnLLS9BYfZLymQXoDu7wL3a67Xr',
'weight': 1
}],
'accounts': [],
'waits': []
},
'active': {
'threshold': 1,
'keys': [{
'key': 'FO7yLv8FvFhFCjajcqgnJJFHBUnLLS9BYfZLymQXoDu7wL3a67Xr',
'weight': 1
}],
'accounts': [],
'waits': []
}
},

根据上面的打印信息,可以看到 fibostest123 账号创建了一个名为 xinchengdai1 的账号,下面 xinchengdai1 账号持有者就可以将私钥导入到 FO 钱包中来使用其中的各项功能啦!点击 下载 FO 钱包 来获取 FO 钱包吧 ~