获取以太坊测试币-online
获取以太坊测试币前言才知道原来搭建环境什么的都需要以太坊测试币进行测试才行,测试币只有一些水龙头网站才能发,于是我们便需要去对于的测试网络的水龙头网站获取
Ethereum Sepoliahttps://www.alchemy.com/faucets/ethereum-sepolia
访问这个网站即可获取,但是获取时候需要注册账号,谷歌账号登录即可
然后写入账户地址,便可获得测试币
MetaMask查看一下发现已经到账了
区块链安全-概述
区块链安全-概述前言该文章是为了学习区块链安全做的简单笔记,因为在一次关于威胁的分析中,需要了解区块链的相关知识,于是这里简单学习一下。
“区块链”⼀词起源于中本聪发明的⼀种点对点电子货币系统中[1],这电⼦货币系统称为⽐特币。作为比 特币的底 层技术,本质上是⼀个去中心化的数据库。是指通过去中心化和去信任的方式集体维护⼀个可 靠数据库的技术⽅ 案。 从科技层面来看,区块链是⼀门涉及数学、密码学、互联网和计算机编程等很多 科学技术综合交叉学问。 从应用视角来看,区块链是⼀种新兴技术,它是⼀个分布式的共享账本和数据 库;这门技术从特点上分析,具有去 中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等 特点。 从计算机技术应用模式的视⻆来看,它具备分布式数据存储、点对点传输、共识机制、加密算法 等技术模式。 中国信通院在2018年发布的区块链安全白皮书的序言,可以看出区块链安全在逐渐变得重 要。
同时区块链已经上升为国家战略,未来在这⼀块的资源也会相应倾斜。 想要⼊坑区块链安全的话,是需 要⼀些密码学基础,掌握了解诸多知识概念,Solidity编程语⾔。
Ethereum 安全C ...
区块链安全-概述 - online
区块链安全-概述前言该文章是为了学习区块链安全做的简单笔记,因为在一次关于威胁的分析中,需要了解区块链的相关知识,于是这里简单学习一下。
“区块链”⼀词起源于中本聪发明的⼀种点对点电子货币系统中[1],这电⼦货币系统称为⽐特币。作为比 特币的底 层技术,本质上是⼀个去中心化的数据库。是指通过去中心化和去信任的方式集体维护⼀个可 靠数据库的技术⽅ 案。 从科技层面来看,区块链是⼀门涉及数学、密码学、互联网和计算机编程等很多 科学技术综合交叉学问。 从应用视角来看,区块链是⼀种新兴技术,它是⼀个分布式的共享账本和数据 库;这门技术从特点上分析,具有去 中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等 特点。 从计算机技术应用模式的视⻆来看,它具备分布式数据存储、点对点传输、共识机制、加密算法 等技术模式。 中国信通院在2018年发布的区块链安全白皮书的序言,可以看出区块链安全在逐渐变得重 要。
同时区块链已经上升为国家战略,未来在这⼀块的资源也会相应倾斜。 想要⼊坑区块链安全的话,是需 要⼀些密码学基础,掌握了解诸多知识概念,Solidity编程语⾔。
Ethereum 安全C ...
区块链学习-Remix IDE安装
区块链学习-Remix IDE安装第一步 安装环境使用remix服务器版首先这里写的合约是指solidity合约,使用Remix IDE。所以我们第一步就是安装Remix IDE。remix ide是开发以太坊智能合约的神器,支持网页在线编写、部署和测试智能合约。网址http://remix.ethereum.org可以选择先跳过安装环境这一步,直接使用在线的http://remix.ethereum.org
我这边的测试环境是kali-linux安装的指令为
1234git clone https://github.com/ethereum/remix-ide.gitcd remix-idesudo npm installnpm run build && npm run serve
注意:一定要sudo npm install,一定要sudo npm install,一定要sudo npm install,重要的事情说三遍,本人在这里踩了一次坑了一般kali是不会自带npm这个东西的,所以我们需要先安装npmNPM是随同NodeJS一起安装的包管理工具,能解决Nod ...
区块链学习-Remix IDE安装 - online
区块链学习-Remix IDE安装第一步 安装环境使用remix服务器版首先这里写的合约是指solidity合约,使用Remix IDE。所以我们第一步就是安装Remix IDE。remix ide是开发以太坊智能合约的神器,支持网页在线编写、部署和测试智能合约。网址http://remix.ethereum.org可以选择先跳过安装环境这一步,直接使用在线的http://remix.ethereum.org
我这边的测试环境是kali-linux安装的指令为
1234git clone https://github.com/ethereum/remix-ide.gitcd remix-idesudo npm installnpm run build && npm run serve
注意:一定要sudo npm install,一定要sudo npm install,一定要sudo npm install,重要的事情说三遍,本人在这里踩了一次坑了一般kali是不会自带npm这个东西的,所以我们需要先安装npmNPM是随同NodeJS一起安装的包管理工具,能解决Nod ...
以太坊智能合约Call注入攻击
以太坊智能合约Call注入攻击前言该文章只是对网上现有的文章进行整理,不具备原创性,相关引用都会在文章末尾进行标注
0x00 基础知识以太坊中跨合约调用是指的合约调用另外一个合约方法的方式。为了好理解整个调用的过程,我们可以简单将调用发起方合约当做传统web世界的浏览器,被调用的合约看作webserver,而调用的msg则是http数据,EVM底层通过ABI规范来解码参数,获取方法选择器,然后执行对应的合约代码。
当然,实际上智能合约的执行一般在打包交易或者验证交易的时候发生,上面的比喻只是方便理解。
在solidity语言中,我们可以通过call方法来实现对某个合约或者本地合约的某个方法进行调用。
调用的方式大致如下:
12<address>.call(方法选择器, arg1, arg2, …) <address>.call(bytes)
如上所述,可以通过传递参数的方式,将方法选择器、参数进行传递,也可以直接传入一个字节数组,当然要自己去构造msg.data的结构。
Solidity编程中,一般跨合约调用执行方都会使用msg.sender全局变量来获取 ...
web3.js使用手册
web3.js使用手册web3.js是一组用来和本地或远程以太坊节点进行交互的js库,它可以使用HTTP或IPC建立与以太坊节点旳连接。
本文档是web3.js 1.0的API参考手册,其中每个API都包含有示例代码。
web3web3是顶层包,它包含了所有以太坊相关的模块。
1234567891011121314var Web3 = require('web3');> Web3.utils> Web3.version> Web3.modules// 在支持以太坊的浏览器中,Web3.providers.givenProvider将被自动设置var web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8546');> web3.eth> web3.shh> web3.bzz> web3.utils> web3.version
web3.ethweb3-eth这个包用来和以太坊区块链与智能合约交互。
123456 ...
Solidity内置函数 - online
Solidity内置函数1. 块函数: 可以获取块信息block.timestamp (uint)当前块的实际戳,单位秒。
block.number (uint)当前块高度。
block.difficulty (uint)矿工会用到的出块难度。
block.gaslimit (uint)计算块需要消耗的gas限制,是转账gas和智能合约的执行gas之和
block.coinbase (address payable)矿工地址:块产生的gas费 转账地址。 也是写入块数据的地址
gasleft() returns (uint256)每个块都有执行成本,但是不一定能够完全消耗完。 矿工一般会按照最接近的gas费用来打包出块。gaslefe就是剩下的部分。
2. Message 函数 在合约内获取用户签名后的信息。msg.data (bytes calldata)用户发生的转账之外的内容,可以是文字备注之类的,但是如果接受信息的是智能合约那合约会对data进行解析,并执行date中指定的函数。
msg.sender (address payable)发送信息的发送者
msg.sig (byt ...
Solidity内置函数
Solidity内置函数1. 块函数: 可以获取块信息block.timestamp (uint)当前块的实际戳,单位秒。
block.number (uint)当前块高度。
block.difficulty (uint)矿工会用到的出块难度。
block.gaslimit (uint)计算块需要消耗的gas限制,是转账gas和智能合约的执行gas之和
block.coinbase (address payable)矿工地址:块产生的gas费 转账地址。 也是写入块数据的地址
gasleft() returns (uint256)每个块都有执行成本,但是不一定能够完全消耗完。 矿工一般会按照最接近的gas费用来打包出块。gaslefe就是剩下的部分。
2. Message 函数 在合约内获取用户签名后的信息。msg.data (bytes calldata)用户发生的转账之外的内容,可以是文字备注之类的,但是如果接受信息的是智能合约那合约会对data进行解析,并执行date中指定的函数。
msg.sender (address payable)发送信息的发送者
msg.sig (byt ...
Foundry搭建和使用
Foundry搭建和使用Foundry介绍
Foundry 是一个智能合约开发工具链。
Foundry 管理您的依赖关系、编译项目、运行测试、部署,并允许您通过命令行和 Solidity 脚本与链交互。
开始使用 Foundry
要开始使用 Foundry,请安装 Foundry 并设置第一个项目。
启动 Foundry 项目
本节将向您概述如何创建和使用现有项目。
Forge 概述
本节概述将为您提供有关如何使用“forge”来开发、测试和部署智能合约所需的所有知识。
Cast 概述
了解如何使用“cast”与智能合约交互、发送交易以及从命令行获取链上数据。
Anvil 概述
了解 anvil, Foundry 的本地节点。
Chisel 概述
了解如何使用 chisel - Foundry 集成的 Solidity REPL。
Foundry 配置
Foundry 配置指引:
配置 foundry.toml
持续集成 CI
与 VSCode 集成
Shell 命令补全
静态代码分析器
与 Hardhat 集成
教程
与 Foundry 建立智能合约的教程。
使用 Solmat ...