# 1.揭秘EIDOS百倍效率挖矿骚操作。

声明

《区块链财富指北》系列文章由NOCY.COM策划,肖南飞主笔撰写。 技术选型基于BOScore公链,旨在以有趣易懂的方式传播普及区块链技术,不构成任何投资建议!

# 0x01 人人都是科学家

最近,很流行说“科学家”。
比如,前段时间的大丰收(DeFis)官方半夜发公告,宣布躺平认输向科学家投降,停止挖矿。

01

有人总结,“科学家”就是专门撸新出来的项目,识破各种算法,狠狠撸的玩家,直接撸到要项目关门的哪种。
区块链项目,攻击永远比防守容易。
防守者,建立高墙密网,然而机关算尽,亦难免百密一疏;
攻击者,找准漏洞进攻,不怕铜墙铁壁,只要找点滴缝隙。
所以,“科学家”也并不是遥不可及的事情。
在去年底EIDOS挖矿热潮中,AP有次在推特爆料有人一次交易里执行100次挖矿操作。
也有人专门写了文章分析,感慨不会智能合约,错过这么高效率的操作。
其实,这种操作不需要智能合约也可以实现的。
用熟命令行,人人都是科学家。

# 0x02 百倍效率挖矿的原理

首先我们要了解EOSIO系统的交易本质。
交易是账号向链上发送授权的事务(Transaction)的过程。
事务(Transaction)里可以是单一操作(Action),
也可以是多个操作(Action)的集合。
单一操作(Action)就是我们发送出去的单独一个命令,
比如转账给某账号1个BOS,这就是一个Action。
多个操作(Action)的集合,
比如在转账给A账号1个BOS,再转账给B账号2个BOS,
这一系列Action可以组合成一个事务。
我们可以把只包含单个操作(Action)的事务(Transaction)发送上链,
也可以把多个操作(Action)组合的事务(Transaction)发送上链。
这就是理论基础。

回到EIDOS的交易即挖矿,
规则是发送给eidosonecoin账号任意数量代币,他会自动返还EIDOS。

02

目前通过钱包执行的,通常是发送单个操作(Action)的事务(Transaction),即一次只执行一个操作。
其实,可以通过命令行来发送事务(Transaction),一次执行数十上百次操作(具体达到多少次会不报错,和公链当前出块节点支持的打包数大小有关)。
发送多操作(Actions)的组合事务(Transaction),就可以达到百倍效率挖矿的目的。

# 0x03 命令行下的普通效率挖矿

在BOS主网有一个eidos的仿盘项目RICH,
规则和eidos的一样,向richcoincoin转账任意数量代币,他会自动返还RICH代币。

03

我们就以此项目进行实践测试。

首先是普通效率挖矿。
即发送包含单个操作(Action)的事务(Transaction)。
我们发送0.0001BOS给richcoincoin,测试下挖矿。
cleos方法:

cleos -u https://api.boscore.io push action eosio.token transfer '["boscfzb12345","richcoincoin","0.0001 BOS",""]' -p boscfzb12345@active
1

04

eosc方法:

eosc.exe -u https://api.boscore.io transfer boscfzb12345 richcoincoin 0.0001
1

05

在区块浏览器上查看下:

06

刚才我们两笔交易都触发了richcoincoin的智能合约,自动转账给我们若干RICH。
点击tx链接进去看:

07

每笔交易里只有一个操作(Action),这个命令就和我们常用的钱包APP转账类似,一次交易只执行一个操作。

# 0x04 命令行下的百倍效率挖矿

下面是百倍效率挖矿。
即发送多操作(Actions)的组合事务(Transaction)。
首先我们要构建一个json包,
这里我把事务要执行的操作(Action)重复了5遍,作演示用。当然你也可以复制粘贴更多遍。
内容如下:

{
    "actions": [
        {
            "account": "richcoincoin",
            "name": "transfer",
            "authorization": [
                {
                    "actor": "boscfzb12345",
                    "permission": "active"
                }
            ],
            "data": {
                "from": "boscfzb12345",
                "to": "richcoincoin",
                "quantity": "0.0001 RICH",
                "memo": ""
            }
        },{
            "account": "richcoincoin",
            "name": "transfer",
            "authorization": [
                {
                    "actor": "boscfzb12345",
                    "permission": "active"
                }
            ],
            "data": {
                "from": "boscfzb12345",
                "to": "richcoincoin",
                "quantity": "0.0001 RICH",
                "memo": ""
            }
        },{
            "account": "richcoincoin",
            "name": "transfer",
            "authorization": [
                {
                    "actor": "boscfzb12345",
                    "permission": "active"
                }
            ],
            "data": {
                "from": "boscfzb12345",
                "to": "richcoincoin",
                "quantity": "0.0001 RICH",
                "memo": ""
            }
        },{
            "account": "richcoincoin",
            "name": "transfer",
            "authorization": [
                {
                    "actor": "boscfzb12345",
                    "permission": "active"
                }
            ],
            "data": {
                "from": "boscfzb12345",
                "to": "richcoincoin",
                "quantity": "0.0001 RICH",
                "memo": ""
            }
        },{
            "account": "richcoincoin",
            "name": "transfer",
            "authorization": [
                {
                    "actor": "boscfzb12345",
                    "permission": "active"
                }
            ],
            "data": {
                "from": "boscfzb12345",
                "to": "richcoincoin",
                "quantity": "0.0001 RICH",
                "memo": ""
            }
        }
    ],
    "transaction_extensions":[]
}
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

将该文件保存为tx.json。

cleos方法:

cleos -u https://api.boscore.io push transaction tx.json -p boscfzb12345@active
1

08

在区块浏览器上查看下:

09

同一事务名称,执行了5遍同样的操作。
我们再到事务ID上看下:

10

可以看到,该事务里有5个操作(Actions)。
如上所述,可以将json中操作(Actions)复制粘贴成更多。经测试,30到80倍之间是比较合适的。
到了100倍有时会遇到打包数据量大、出块节点限制不执行情况。
然后将json调整成合适的操作(Actions)倍数后,我们再在Python里设置一个循环语言,就可以一直执行多倍效率挖矿了。
Python语句类似如下:

while true 
do
  cleos -u https://api.boscore.io push transaction tx.json -p boscfzb12345@active
  sleep 1
done
1
2
3
4
5

# 0x05 下篇内容预告

在下篇文章里,我们开始步入智能合约的大门。 智能合约(1):编写第一个智能合约HelloBOS。

陈志武教授在《金融通识课》中有一句贯彻全篇的总结:
“金融的本质是价值的跨时空交换。”
而合约,就是价值跨时空交换的承诺书。
人类社会文明发展之初至现在,社会经济秩序的构建都是基于传统合约来实现的,
如保险合约、贸易合约等等。
传统合约,最大的痼疾在于违约风险,即合约中利益方不履约。
智能合约,就是将合约条款通过代码形式进行锁定和传递,并且由代码直接干预和分配。
它杜绝任何可能的人工干预(如欺诈)及不确定性(如违约、纠纷),让合约结果变得更为清晰、可预测。
智能合约的出现第一次将区块链的应用从单纯的支付转账扩展到了所有的商业逻辑。
智能合约正在席卷传统金融行业,成为游戏规则颠覆者。

# 0x06 联系及投票支持

《区块链财富指北》系列文章github存档地址:https://nocycom.github.ioNOCY.com团队致力于区块链基础知识传播,欢迎读者朋友留言共同交流。 由于发文时间仓促及区块链领域技术迭代频繁,在教程中可能有这样或那样的错漏之处,还请读者与我们一起查漏补缺、将系列教程优化的更好。

如果觉得这系列教程有点意思,请投票支持我们的节点:BOS公链NOCYCOM节点EOS公链NOCYCOM节点。您的投票是本教程持续更新的动力源泉,谢谢。