周末影院:《灵笼》,末日里谈谈情打打怪

cage.jpg

《灵笼》,算是国漫中的佳作了!末日中地球被怪兽占据,人类几无立足之地,只能呆在空中堡垒:灯塔中。如果要获取物资,就必须返回地面去拾荒。整部故事就是描述拾荒部队大战怪兽的战斗经过!

cage2.jpg

战斗场面还是挺燃的! 前面几集中与噬极兽的战斗真心做得不错,我也是被这几场吸引住了。各种大招,各种骚操作,秉承着人类最终会获胜的信心,前面的故事就刷得差不多了。

cage3.jpg

后面几集就是在灯塔中了。片名《灵笼》估计有这层意思:是人类的生存也是人类的束缚。故事设定得很宏大,可惜细节方面却是不够。时间太紧,根本也来不及展开,估计会在下一部中描述吧。

如果只有前三集,那《灵笼》无疑是优秀的国漫了。可惜后面不怎么精细,故事有点讲不下去了。周末无事,吃个瓜!


This page is synchronized from the post: ‘周末影院:《灵笼》,末日里谈谈情打打怪’

天价矿工费,矿工应该退还吗?

transaction.jpg

如上图所示,这是其中一笔闹得人尽皆知的天价转帐费事件!

这是6月11日发生的,地址0xcdd6a2b9dd3e386c8cd4a7ada5cab2f1c561182d转帐350ETH,却花费了矿工费 10,668ETH! 富人的世界我们无法想像啊!

有人猜测是填错了,有人猜测是黑客行为,有人猜是交易所要洗钱……诸如此类,真相如何,暂时还人知道。

那么,天价矿工费,矿工应该退还吗? 这近乎于灵魂拷问了!这好比问你:在路上你捡了一个亿,你还会交给警察叔叔还给失主吗?

f2pool.jpg

https://blog.f2pool.com/zh/announcement/handling-of-abnormal-eth-tx

几起事件中有笔涉及到鱼池(鱼池也有幸挖到了一个天价块),看看鱼池的处理:

F2Pool鱼池在确认该笔交易由矿池PPS结算方式节点打包(块描述中Hex编码以“e9b1bc”结尾)后,出于人道主义精神,也为了维护ETH的价值和网络安全,决定退还该笔交易的高额手续费。

鱼池的节操还是不错的,“把钱交给警察叔叔还给失主了”!

在15年时我就一直在鱼池挖矿,只是可惜由于疫情我以太矿机停机了很长时间了,真不知还有没有重启的那天。


This page is synchronized from the post: ‘天价矿工费,矿工应该退还吗?’

msg.sender和tx.origin的异同 / 学习智能合约#15

智能合约

如果你的智能合约逻辑简单,那么调用合约者就应该只用msg.sender,它表示调用者的身份。此时,你用tx.origin和用msg.sender是一样的,都是表示你在调用!但在很多技术文章中是不鼓励使用tx.origin,它可能会产生合约漏洞!

但是,如果你的智能合约逻辑稍显复杂,有几个功能部分,那么,相互之间的调用就比较麻烦了。今天也是在这块卡了好久,最后还是使用了tx.origin来解决了这个问题。

1
2
3
4
5
6
7
8
9
10
11
function transfer(address _to, uint256 _value) public override returns (bool success) {
require(_to != address(0));
require(balanceOf[msg.sender] >= _value);
require(balanceOf[ _to] + _value >= balanceOf[ _to]);

balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;

emit Transfer(msg.sender, _to, _value);
return true;
}

上面是典型的代币合约的转帐方法。如果是另一个合约要调用代币合约中的转帐是不会成功的!问题就出在msg.sender上。另一个合约要调用代币合约的转帐时msg.sender是指的合约地址,而不是当前的调用者!所以,一直会出现授权错误的提示。

改进下方法看看:

1
2
3
4
5
6
7
8
9
10
11
function transferFromOrigin(address _to, uint256 _value) public override returns (bool success) {
require(_to != address(0));
require(balanceOf[tx.origin] >= _value);
require(balanceOf[ _to] + _value >= balanceOf[ _to]);

balanceOf[tx.origin] -= _value;
balanceOf[_to] += _value;

emit Transfer(tx.origin, _to, _value);
return true;
}

就是将msg.sender替换成tx.origin,这样,就可以在另外的合约中调用代币合约中的转帐方法。但是技术高手们又认为这会出现漏洞攻击!我研究了半天,没太看明白,但是却是解决了我现在的问题,先用着吧。


This page is synchronized from the post: ‘msg.sender和tx.origin的异同 / 学习智能合约#15’

万物萧条

depression.jpg

6月中旬了,本来形势也开始好转,大家该干嘛干嘛。但这几天,形势又急转直下!好好的地摊也反映出了剧烈的社会矛盾:企业公司破产,民生艰难!

听说美股又跌了。嗯 ,比特币也跌了。看来2020年是没有好日子过啰!

在youtube刷了下视频,除了星链,就是国内的破产啊,地摊啊,看完心情有点沉重。可能外媒有时能讲真话实话,反而比国内能反映国内的真实现状。但这样的真实现状真让人高兴不起来。

万物萧条,春天还有多远?!


This page is synchronized from the post: ‘万物萧条’

百灵界上线测试

etherlark.jpg

https://etherlark.github.io

在原来EtherJiang的基础上做了升级开发! 现在已添加ERC20代币功能,发文即可赚币哦。

larktoken.jpg

https://ropsten.etherscan.io/token/0xC1ffA894A60CF35343AE4091166a25b942bF9353

这是发行的larktoken,是标准的ERC20代币,没准以后也能值点钱!

在设计上后期会添加集市和威客的功能,在以太坊网络上实现这些功能还是蛮不错的。

在设计应用中学习是个不错的快速成长的方法! 通过开发百灵界,我感觉对以太坊的各项参数和设定的理解不断加深。就算是一个小数位,折腾一番下来也有不小的收获。

期待百灵界正式上线主网的那天吧!

注:请切换至Ropsten测试网,这里有篇《新手指南》,可以参考下。


This page is synchronized from the post: ‘百灵界上线测试’

truffle技巧:更新Solidity版本 / 学习智能合约#14

智能合约

Remix上Solidity版本已经更新到了0.6.10(更新发展得挺快的),而在truffle上一直是0.5.16版的,重新安装了几遍也没有更新到最新版!

查了下资料,这个需要额外的设置。需要手动修改 ‘truffle-config.js’ 文件中的’compilers’ -> ‘solc’ -> ‘version’至最新版(”0.6.10”)即可。

truffle会自动从官方拉取相应版本的编译器,不再需要你手动下载配置了。

1
2
3
4
5
6
7
8
9
10
11
12
13
compilers: {
solc: {
version: "0.6.10", // Fetch exact version from solc-bin (default: truffle's version)
// docker: true, // Use "0.5.1" you've installed locally with docker (default: false)
// settings: { // See the solidity docs for advice about optimization and evmVersion
// optimizer: {
// enabled: false,
// runs: 200
// },
// evmVersion: "byzantium"
// }
}
}

试着编译下”truffle migrate”,可以看到在下载最新版的Solidity! turffle version看看:

1
2
3
4
Truffle v5.1.27 (core: 5.1.27)
Solidity - 0.6.10 (solc-js)
Node v12.13.0
Web3.js v1.2.1

Solidity已经更新到了最新版,可以愉快地玩耍啰!


This page is synchronized from the post: ‘truffle技巧:更新Solidity版本 / 学习智能合约#14’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×