![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
以太坊
blockchain_yhj
1986739692@qq.com
18852897525@163.com
展开
-
调用多个NFT的代理合约应该怎么设计?
需求:项目方由10个NFT合约,需要不定时的去某个合约中 转账/mint 特定的ID到特定用户。原创 2024-01-12 18:36:52 · 803 阅读 · 3 评论 -
lotus Command
Lotus command原创 2022-10-27 15:13:31 · 161 阅读 · 0 评论 -
Etnereum-fullNode 以太坊全节点搭建
1 仿照置顶文章 安装git、curl、 go、nvm、node、npm、docker、docker-compose2安装完成后 执行以下命令安装gethadd-apt-repository -y ppa:ethereum/ethereumapt-get updateapt-get install ethereum原创 2020-09-10 17:32:00 · 1825 阅读 · 1 评论 -
log Network Execution Time
关闭旧网络 开启新网络 log文件原创 2022-06-23 10:11:12 · 153 阅读 · 0 评论 -
GetEmptyBlcoksPre Info
获取空 的前一个的信息原创 2022-06-19 15:46:48 · 211 阅读 · 0 评论 -
python2爬取div数据
python爬取数据原创 2022-06-12 15:35:04 · 1448 阅读 · 0 评论 -
multi-sig SC
多签合约原创 2022-06-10 15:45:16 · 130 阅读 · 1 评论 -
Blo Tx Pending
图解数据原创 2022-06-01 16:09:28 · 159 阅读 · 0 评论 -
查询pending tx
cnpm i ehtersvar ethers = require("ethers");var url = "wss://mainnet.infura.io/ws/v3/";var init = function () { var customWsProvider = new ethers.providers.WebSocketProvider(url); customWsProvider.on("pending", (tx) => { customWsProvider原创 2022-05-30 22:14:58 · 318 阅读 · 0 评论 -
遍历查询miner
node – v14.18.1npm --v 6.14.15// Part 1 Import Related Packagevar Web3 = require('web3');var mongoose = require('mongoose');var moment = require('moment');const startBlock = 14621879;const endBlock = 14621880;const ethContractSchema = mongoose.S原创 2022-05-23 14:30:44 · 157 阅读 · 0 评论 -
理解Arbitrum Layer2方案
1 Rollup的核心思路是在L1上保存能够验证交易过程的凭证,而将交易过程(计算过程)还有状态存储运行在L2中。何为交易过程的凭证,交易执行的过程就是由1个状态转移到另外1个状态的过程,如果L1知道了一组交易前的状态和一组交易后的状态还有这一组交易,自然可以验证这组交易对应的状态转移是否正确。如上图所示,发布者将交易前状态树的根hash 和交易后状态树的根hash以及交易发布到L1上,L1智能合约确认交易前状态树根hash是否和存储的根hash一致。交易前的根hash一致说明起始状态正确,那么本次交转载 2022-05-17 22:13:57 · 311 阅读 · 0 评论 -
crontab实现Ubuntu上定时处理任务
1 安装cronapt -y install cron2 安装后之后,进行配置crontab -e首次使用,会需要选择输入模式,选择3即可输入需要定时执行的脚本,脚本文件中包括命令中都必须是绝对路径每5分钟执行一次脚本*/5 * * * * sh /mnt/EthereumData/webjs/pendAndblockTx/shPend.sh >> /mnt/EthereumData/webjs/pendAndblockTx/Txpending.txt*/5 * * * *原创 2022-05-17 15:48:51 · 573 阅读 · 0 评论 -
遍历区块数据,查询合约交易
// Part 1 Import Related Packagevar Web3 = require('web3');var mongoose = require('mongoose');var moment = require('moment');const startBlock = 14650515;const endBlock = 14656856;const ethContractSchema = mongoose.Schema({ address: String,原创 2022-05-16 14:55:47 · 447 阅读 · 0 评论 -
python2爬取数据
安装依赖包pip2 install requests -i http://pypi.douban.com/simplepip2 install parsel -i http://pypi.douban.com/simplepip2 install csv -i http://pypi.douban.com/simple具体代码:import requestsimport parselimport csvimport sysreload(sys)sys.setdefaultencod转载 2022-05-13 14:20:59 · 176 阅读 · 0 评论 -
python 2.7安装pip
python2.7的pip安装:wget https://bootstrap.pypa.io/pip/2.7/get-pip.pypython get-pip.py -i http://pypi.douban.com/simple --trusted-host pypi.douban.compip2 --version原创 2022-05-09 11:48:10 · 1994 阅读 · 0 评论 -
mongodb导出数据,通过python 解析
1 mongodb导出数据mongoexport -d eth_ctaddrandfunc -c ctaddr_func_delays -o ./test.json2 python处理首先将json转为csv文件,安装jsoncsvpip install jsoncsv -i https://pypi.tuna.tsinghua.edu.cn/simple转换成csv文件cat test.json | jsoncsv | mkexcel > jstocs.csvpython导入cs原创 2022-05-09 11:00:58 · 798 阅读 · 0 评论 -
智能合约部署在测试网,并互相调用
部署在ropsten浏览器:https://ropsten.etherscan.io/address/0xA98D40001cf6f3859dE29fbFDFE13eBa2C940601合约RopstenNumber// SPDX-License-Identifier: GPL-3.0pragma solidity >=0.8.0 <0.9.0;contract RopstenNumber {uint256 c; function getNumber() publ原创 2022-04-26 10:42:57 · 620 阅读 · 1 评论 -
remix连接测试链,连接Arbiturm二层网络
安装 MetaMask打开Remix界面1 测试链连接MetaMaskhttps://chainlist.org/ //搜索需要连接的测试链2 以太坊测试链测试的ETH 领取水龙头 --需要连接VPN 每次0.1ethRinkeby![https://faucets.chain.link/rinkeby](https://img-blog.csdnimg.cn/ba68fb7021dd48068cd9f9b6e028eb7b.png?x-oss-process=image/waterm原创 2022-04-21 13:50:48 · 625 阅读 · 0 评论 -
通过合约地址 和 接口 调用另一个合约的方法
A 合约:// SPDX-License-Identifier: GPL-3.0pragma solidity >=0.8.0 <0.9.0;contract Number {uint256 c; function getNumber() public view returns (uint) { return c; } function setNumber(uint num) public { c=num;原创 2022-04-17 22:08:41 · 1011 阅读 · 0 评论 -
智能合约开发以及调用过程的注意事项
智能合约特征:1 合约一旦部署完成,就无法修改。2 调用合约时触发既定的合约规则,并且执行过程是原子性执行(All or Nothing)3 以太坊中合约是公开可见的,出发合约的交易也是透明存储通过solidity编写的合约在线编译网址:https://remix.ethereum.org/以太坊账户分为:外部账户,由账户私钥控制合约账户,通过CREATE或CREATE2(主要应用于状态通道中,在链下执行未部署的合约)交易类型:合约创建、触发合约交易、转账交易。交易中,通过gas评原创 2022-04-13 23:30:39 · 1268 阅读 · 0 评论 -
transfer和 send
send()成员函数addr.transfer(eth) 等价于 require(addr.send(eth))send returns bool,返回bool类型,通过require判断transaction: Exception if fails,会返回错误提示推荐用transfer,因为有报错提示send错了,因为默认不报错,所以用断言assert(towho.send(1 ether));...原创 2022-04-13 20:10:50 · 274 阅读 · 1 评论 -
重入攻击的合约
pragma solidity ^0.4.18;contract Reentrance { mapping(address => uint) balances; function donate(address _to) public payable { balances[_to] = balances[_to]+msg.value; } function balanceOf(address _who) public view returns (uint balan原创 2022-04-13 15:16:22 · 163 阅读 · 1 评论 -
合约中实现数组的删减,从合约中删除数据
pragma solidity ^0.8.0;contract ExampleApp { string[] myArray; function add(string memory x) public { myArray.push(x); } function del(string memory x) public { for (uint j = 0; j < m原创 2022-04-13 11:35:10 · 261 阅读 · 1 评论 -
fallback 和 receive 回退函数
//纯转账调用receiver回退函数,例如对每个空empty calldata的调用// 除了纯转账外,所有的调用都会调用fallback function.// SPDX-License-Identifier: GPL-3.0pragma solidity ^0.8.0;// 向合约账户转账 contract terans{// 向合约账户转账 evevent TransEvent(address,uint);//trigger recevier function//纯转账调用r原创 2022-04-13 11:33:02 · 698 阅读 · 1 评论 -
通过selfdestruc退款,导致游戏转账合约没有赢家
selfdestruct的用法address payable addr = payable(address(etherGame)); selfdestruct(addr);call合约转账(bool sent, ) = msg.sender.call{value: address(this).balance}("");// SPDX-License-Identifier: MITpragma solidity ^0.8.0; // The goal of this game is原创 2022-04-13 11:25:55 · 193 阅读 · 1 评论 -
实现合约接口并且合约间互相调用
1 interface 修饰接口合约通过 is关键字实现接口,通过override关键字改写方法通过实现的合约地址实现多个合约间的互相调用pragma solidity ^0.8.0;interface Caller{ function repeat(address _count)external;}contract CallerImpl is Caller{// input countImpl's address contract address function rep原创 2022-04-13 11:10:38 · 513 阅读 · 1 评论 -
以太坊网络重启并开启rpc
1 查找现在的进程idps -ef| grep geth或top | grep geth2 重启nohup geth --http --http.addr "0.0.0.0" --http.corsdomain "*" --http.api "eth,net,web3,personal,admin,shh,txpool,debug,miner" --port 30303 --http.port "8545" --datadir '/mnt/EthereumData' console --all原创 2022-04-12 13:20:54 · 7137 阅读 · 0 评论 -
关键工具总结
论文:Smart Contract Security: a Practitioners’ Perspective合约EVM字节码的安全审计工具 mythrilhttps://github.com/ConsenSys/mythril衡量分类精度 – cohen kappahttps://blog.csdn.net/wonner_/article/details/103542799比较差异性 Cliff’s deltaCliff’s delta 代表两类样本的重叠性,【-1,1原创 2022-04-11 22:14:55 · 1057 阅读 · 1 评论 -
以太坊的黑暗森林
以太坊的黑暗森林,利用交易等待池的透明性,对用户征收的无形税收在 DeFi 中,交易被打包的顺序深刻影响着其经济利益。例如,在 Uniswap 中,同样两个针对某交易对的买单,先被执行的交易将获得更多代币。如果你总是在一笔买单前买入同样的代币,然后又紧随其后卖出,则将“毫无风险”地获利。这也被称为提前交易(Front-Running)在这里插入图片描述这种机器人就如同站在公路上,光天化日进行打劫的强盗。下面我们来看一个例子:用户在区块 11331736 上买入 100 ETH 的 YFL(用.原创 2022-04-10 21:57:24 · 353 阅读 · 0 评论 -
1559的分析
分析基于下述三个问题:1 1559是否影响交易费的动态调整2 是否影响交易等待时间3 是否影响共识安全(区块size提高)结论:1 1559的目的不是降低交易费用,而是使得gas估价更容易2 采用1559竞价的交易费比first-price auction付的gasFee要低3 随着更多人采用1559竞价模式,每个块中的所有交易gasPrice的差异越来越小,从而gas估价比较容易和用户不会过度付费4 1559有效降低交易等待时延(在pending队列中等待的时间),适用于1559竞价模式原创 2022-03-30 16:11:45 · 612 阅读 · 0 评论 -
以太坊生成合约地址以及存在的账户碰撞
Eip10141、create通过CREATE关键字创建合约// Create creates a new contract using code as deployment code.func (evm *EVM) Create(caller ContractRef, code []byte, gas uint64, value *big.Int) (ret []byte, contractAddr common.Address, leftOverGas uint64, err error) {原创 2022-03-10 20:21:10 · 15374 阅读 · 1 评论 -
以太坊基础---奖励
在提案1559之前,出块获得基础奖励费和gasprice*gasused的手续费https://blockchair.com/ethereum/blocksgas功能:在以太坊进行任何操作都需要消耗 gas,每个区块的 gas 空间有限。 这包括计算、储存或操作数据,或转移代币,每种消耗不同数量的“gas”单位。简而言之,Gas 费用有助于确保以太坊网络安全。 在网络上执行的每次计算都需要收费,这样可以防止参与者对网络造成垃圾信息。 为了防止代码中无意、恶意的无限循环或其他计算浪费,要求每个事务对原创 2022-02-23 22:36:48 · 746 阅读 · 0 评论 -
以太坊基础---区块验证
以太坊中的区块结构具备的独特之处:1.交易的列表[0,…,n-1]和最近区块的状态(parent_Block_Merkleroot_Hash)会在以太坊的区块链中存储2.以太坊中区块的数量和挖矿难度也会保存在区块链中以太坊的状态转换函数,Apply(State[n],Tx)=State[n+1],状态State[n+1]基于当前状态State[n]由交易Tx经过转换函数Apply得到矿工挖矿过程的区块验证:1.parentHash检查。收到新的区块后,验证区块的上一个区块是否存在并且有效原创 2022-02-20 15:33:23 · 9225 阅读 · 0 评论 -
PBFT共识及视图切换
PBFT译为实用性拜占庭容错,顾名思义此算法是拜占庭容错的,也就是说可以容忍有一定数量(算法中是(n-1)/3)的“坏人”存在。因为PBFT算法除了需要支持容错故障节点之 外,还需要支持容错作恶节点,假设集群节点数为 N,有问题的节点为f,有问题的节点中,可以既是故障节点,也可以是作恶节点,或者只是故障节点或者只是作恶节点。那么会产生以下两种极端情况:第一种情况,f个有问题节点既是故障节点,又是作恶节点,那么根据小数服从多数的 原则,集群里正常节点只需要比f个节点再多一个节点,即f+1个节点,确节点的数量转载 2021-11-12 20:58:18 · 2551 阅读 · 0 评论 -
以太坊搭建 private blockchain
1 安装以太坊add-apt-repository -y ppa:ethereum/ethereumapt updateapt install ethereum原创 2021-08-25 15:46:47 · 772 阅读 · 0 评论