您正在查看: Surou 发布的文章

关于EOS出块BP备份的想法

假设使用一台机器作为BP节点机器。大家都知道eos的data目录超级大,备份的话只能全量备份。cp 的时间过于长,影响出块和RPC业务等提供。

暂时想到的方案如下

机器上跑2个nodeos进程,一个跑BP账号做出块节点,一个做同步几点。
保留三份data数据。出块节点初始化占一个,剩余两个,其中一个同步节点同步使用,同步节点定期切换剩余两个目录,保持2个目录数据与主网持平,当出块节点出问题导致data脏时,时切换到当时没有占用的data目录。然后删除脏目录,停止同步节点,并cp 同步节点前面用的data目录补齐第三目录。然后选一data重新运行同步节点。

且如果此机器提供RPC服务的话,可以做高可用。

优点

本方案可保证出块节点最大的运行时间。

缺点

data 三份的占用。

关于资源的抵押赎回,及查询抵押列表

关于抵押和赎回的方法,拿eosjs举例
https://eosio.github.io/eosjs/guides/2.-Transaction-Examples.html

Stake 抵押

const result = await api.transact({
  actions: [{
    account: 'eosio',
    name: 'delegatebw',
    authorization: [{
      actor: 'useraaaaaaaa',
      permission: 'active',
    }],
    data: {
      from: 'useraaaaaaaa',
      receiver: 'useraaaaaaaa',
      stake_net_quantity: '1.0000 SYS',
      stake_cpu_quantity: '1.0000 SYS',
      transfer: false,
    }
  }]
}, {
  blocksBehind: 3,
  expireSeconds: 30,
});

Unstake 赎回

const result = await api.transact({
  actions: [{
    account: 'eosio',
    name: 'undelegatebw',
    authorization: [{
      actor: 'useraaaaaaaa',
      permission: 'active',
    }],
    data: {
      from: 'useraaaaaaaa',
      receiver: 'useraaaaaaaa',
      unstake_net_quantity: '1.0000 SYS',
      unstake_cpu_quantity: '1.0000 SYS',
      transfer: false,
    }
  }]
}, {
  blocksBehind: 3,
  expireSeconds: 30,
});

操作细节看以上demo即可,下面我们说下抵押时transfer这个参数。
先看合约 (跳转代码)

if ( transfer ) {
    from = receiver;
}

如果设置transfer参数为true,及把来源的账户修改为接收账户。
也就变成了接收账户自己给自己抵押,由来源账户付钱

查看数据

(查看代码)
抵押数据表明为delband
(查看代码)

del_bandwidth_table     del_tbl( _self, from.value );

是以来源账户为查询的scope
所以RPC查询如下
post: https://api.eoslaomao.com/v1/chain/get_table_rows
data:

{
    "scope": "bcskillsurou",
    "code": "eosio",
    "table": "delband",
    "json": true
}

返回

{
    "rows": [
        {
            "from": "bcskillsurou",
            "to": "bcskillsurou",
            "net_weight": "0.0046 EOS",
            "cpu_weight": "0.0147 EOS"
        }
    ],
    "more": false
}

EOS 修改链代码 默认公钥前缀

https://github.com/EOSIO/fc/blob/df5a17ef0704d7dd96c444bfd9a70506bcfbc057/include/fc/crypto/public_key.hpp#L11

namespace fc { namespace crypto {
   namespace config {
      constexpr const char* public_key_legacy_prefix = "EOS"; // 修改EOS为需要的前缀即可,如BSC

EOS BCSkill技术论坛 区块链求职招聘

BCSkill技术社区论坛开放

为了方便问题收集,促进学习激情,我们的BCSkill技术社区新建一个论坛。
网址:http://wiki.bcskill.com/

欢迎学习EOS等区块链技术的小伙伴,以及求职招聘(招聘加群请注明)相关的加入~

求职板块:http://wiki.bcskill.com/?forum-2.htm
招聘版块:http://wiki.bcskill.com/?forum-3.htm
我们社区内有很多区块链技术不错的小伙伴,有需要人手的,快来发帖吧~

此贴定期更新一批邀请码,或者加QQ群791420381直接获取,邀请码永远是免费的。只是为了防止垃圾广告帖,减少不必要的内容维护。

邀请码 (20190626更新)

8D93BADE852A
0B9E8C1154C9
BDBDE23003F0
022DD038C8B6
4F769BD9E717
5E99E0623F53
AECC1DFBF089
942FAA28A72E
029DB38EF967
6E2D228B1A7A
4E531F0F603C
74203AB799D8
29E5197CDD37
A4205E8F887C
CA14F3FC6CD5
8EDE670F3158
3C1CBD30D732
C1223552764A
9E55D43A0B31
94CAF29753D3
0D2DD72A3B8D
347D14F7B608
70EDBDE5BF14
9E5D6377CDE6
EFB9A497172F
0C27D7E52EA7
FBFE103795C8
E8C077491575
4935C0BCD9CA
A3434A1FC97D
D2D9FCF33093
FA52947D11B0
5486B5339604
FDA85E994D7C
A40F20A9982D
9CD1F59EFA91
B6703CDFB303
FA2FC5376CAC
DCEE07FBDF26
F485EEAE2293
41BEC6014BB9
4F65898AF09F
9345EC014A71
F630E100BC1D
F949ED29A2E0
D3ACFD1FC374
234A91A79039
65C94C6763EA
1C0A73B415BF
86A44E0B5AF0

GitLab remote: HTTP Basic: Access denied and fatal Authentication

git config --system --unset credential.helper

then enter new password for Git remote server.

参考

https://stackoverflow.com/questions/47860772/gitlab-remote-http-basic-access-denied-and-fatal-authentication