实验1
1)
在[网站](Block #364292: 000000000000000003dd2fdbb484d6d9c349d644d8bbb3cbfa5e67f639a465fe · Bitcoin Explorer - Blockstream.info](https://blockstream.info/block/000000000000000003dd2fdbb484d6d9c349d644d8bbb3cbfa5e67f639a465fe?expand))中获得了如下信息:
分析该区块的两个交易,第二个交易每次额度都是0.00001BTC,总共进行了5569次,这种价格极小数量极多的交易类似于对服务器进行了DDOS攻击,区块链系统设计时没有考虑这种情况,这样的交易对服务器运行效率有较大影响
2)
访问https://btc.com/stats/diff ,可以看到
- 难度调整间隔是4天3小时
- 难度变化趋势整体上升,带来的影响是计算区块越来越困难,需要消耗更多算力
- 平均算力计算:难度除以平均出块时间
3)
调用API:
PS C:\Users\lenovo> curl https://blockstream.info/api/mempool |
a. 分析content中内容,待验证的交易数目为4246个,数据量为1452042,大约1452042/1024/1024=1.4个区块可以处理
**b.**高度在9991-10000 间区块内包含的总交易数目为10个
实验2
OP_3DUP OP_ADD OP_PUSHNUM_9 OP_EQUALVERIFY OP_ADD OP_PUSHNUM_7 OP_EQUALVERIFY OP_ADD OP_PUSHNUM_8 OP_EQUALVERIFY OP_PUSHNUM_1
- 首先栈中有
x,y,z
,OP_3DUP
复制栈,栈中元素变更为x,y,z,x,y,z
OP_ADD
,栈中前两个元素相加,栈顶变更为y+z
OP_PUSHNUM_9 OP_EQUALVERIFY
,栈中放入9,比较y+z
与9
,若要成功解锁需满足y+z=9
.- 之后步骤类似,依次得到解锁条件
z+x=7
,x+y=8
- 解方程得到
x=3,y=5,z=4
解锁脚本为:
OP_PUSHNUM_3 OP_PUSHNUM_5 OP_PUSHNUM_4
脚本转化工具
最终命令为
OP_PUSHNUM_3 OP_PUSHNUM_5 OP_PUSHNUM_4 OP_PUSHBYTES 6f938893889388
实验3
区块详细
探究ERC代币合约
在 events 一栏,可以看到该合约最近的状态变动,触发改动的事务地址以及事务所 调用的具体方法:
点击具体的事务地址可以获得关于该次状态变动更加详细的信息。
智能合约定义为一段部署在evm虚拟机中的代码,无法自动执行,需要人为的触发才能执行,每执行一次需要发起这次执行的账户扣除对应的gas作为手续费, 智能合约与平时的代码的主要区别就是运行在一个以太坊这样的分布式平台上。
实验4
正则匹配相应要求
实验5
脑钱包
纸钱包
普通钱包
拓展实验3:藏头诗
要实现示例的样子在于两点
vanitygen.exe
的正则表达式生成指定内容的地址- 定位每行输入的位置, 下次位置加一
使用python实现,实现代码为:
import os |
效果: