首先纪念一下李医生,他做了别人不敢做的事情,比别人更有勇气。所以可以称李医生为英雄。

区块链记录数据,只要区块链还存在,记录是不可篡改的。之前用过基于BCH的memo,类似论坛,也用过基于BSV的twech,类似于twitter。有新闻报道把李文亮医生的事情记录在了 Ethereum区块链上了,区块高度9432824,记录是写在智能合约上的,不太理解智能合约是什么,也没有见过通过源码的方式记录信息,并上传区块链的。

通过Ethereum浏览器进行查看

https://etherscan.io/block/9432824

发现没有类似BTC、BCH、BSV一样的OP_RETURN字段

op_return

Ethereum有 extraData  信息,但是最多只有32个字节

extra data

那么纪念信息猜是写在了合约里面了,contract里面。

9432824 height

点击binance:Contract

contract

点击Contract,看不到源码

source code of Contract

反编译字节码也看不到什么信息

source code

反编译后是

#
#  Panoramix v4 Oct 2019 
#  Decompiled source of 0x0b95993A39A363d99280Ac950f5E4536Ab5C5566
# 
#  Let's make the world open source 
# 

def storage:
  owner is addr at storage 0

def owner(): # not payable
  return owner

#
#  Regular functions
#

def _fallback() payable: # default function
  stop

def transfer(address _addr) payable: 
  call _addr with:
     value call.value wei
       gas 2300 * is_zero(value) wei
  require ext_call.success

def withdrawEther(): # not payable
  require caller == owner
  call owner with:
     value eth.balance(this.address) wei
       gas 2300 * is_zero(value) wei
  require ext_call.success

找了很久,发现新闻里面的区块高度写得是错的,而应该是 9434454

查找区块高度: 9434454

https://etherscan.io/txsInternal?block=9434454

9434454  transaction

点击Contract,这个智能合约的作者上传了源码,才能看到一个字符串画了一个纪念碑,如果不上传源码是看不到的。

doctor li

怎么上传智能合约源码

在你已经上传的区块链智能合约里面,选择上传源码:

verify and publish your smart contract sourcecode

根据提示选择智能合约地址、编译器版本等,就可以上传源码了。

fill smart contract info

上传后才可以看到智能合约的源代码了。

对智能合约有兴趣,可以查看在线编辑器: http://remix.ethereum.org/

在编辑器里面写代码,通过MetaMask钱包转账,就可以生成合约存储在区块链上了。

上传源码的服务是 etherscan.io 提供的,如果etherscan浏览器无人维护,倒闭了,这个源码也就消失了。而 Ethereum 区块链上存的是编译后的字节码,保存到浏览器的源码其实没有做到无法篡改的,因为源码没有保存到区块链上。

源码没有保存在区块链,字节码保存在区块链上了,如果区块链浏览器倒闭了,那么需要写另外的程序,调用智能合约0x6e46d3ab7335fffb0d14927e0b418cc08fe60505 里面的 string public inscription,再进行数据展示了。

不会写智能合约?

其实也可以通过Ethereum的input data来记录信息。

用钱包自己给自己转账,transaction data填写16进制文本即可。

下载metamask,它是一个chrome的插件,这个就是钱包了。

下载完钱包还需要充值ETH,可以去火币或者币安购买。

如果用metamask,需要在advanced里面打开show hex data,这样在转账的时候才能输入input data。

trun on Show Hex Data Toggle

将文字“你好,以太坊” 从utf-8转为16进制, 转换后的字符串前面要加0x

https://onlinehextools.com/convert-utf8-to-hex

0xe4bda0e5a5bdefbc8ce4bba5e5a4aae59d8a

utf8 to hex

开始给自己转账,填写自己的公共地址

input your eth addr

Hex Data 输入16进制文本

add hex data

点击Next后调整Gas的值,Gas就相当于转账的费用,和Hex Data大小有关,Gas太低会导致转账失败,多余的Gas会退回给账户的。

gas fee and confirm

点击Confirm后,记录就发出去了。

broadcast transaction

ethereum区块链浏览器查看记录

eth-brawser translate hex to UTF-8

查看文本信息

utf-8 results

写地文本就上传到区块链上了,只要etherem没有被51%攻击且还存活着,那么记录就存在。

Input Data没有大小限制,但是Gas最多为 3141592,所以对应的Input Data的大小就由Gas的大小来决定了,Input Data最多为 780kB详见


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!



0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注