这篇文章将教大家如何搭建区块链环境和区块链安全的工具,最好先看一下我之前写的区块链安全介绍,因为我的外部链接太多,审核一直不通过,所以麻烦大家去掉字符即可,有什么不懂的问题可以加我qq:3316735898
下载地址:htt去掉字符ps://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html
安装包教程可以参考百度上的教程,不是很难,一直next就好了
下载地址:ht去掉字符tps://breakforgearchive.s3.amazonaws.com/cloudbreach-linux.zip
或者双击直接打开.ovf文件,设置虚拟机名字和保存的文件夹就好了
Ganache 是一款允许我们创建本地区块链的软件,我们可以使用它来测试智能合约的部署和交互。
虚拟机的账号和密码都是fog,进入虚拟机
ganache下载地址:ht去掉字符tps://www.trufflesuite.com/ganache
然后赋予下载文件最高权限
chmod 777 ganache-2.6.0-beta.3-linux-x86_64.AppImage
./ganache-2.6.0-beta.3-linux-x86_64.AppImage ##运行软件
点击“New Workspace”
给它一个名字
单击 Accounts & Keys 并设置您要测试的帐户数量和余额 100 eth 和 10 个帐户就可以了
点击“Save”即可
Metamask 是一个非常流行的加密货币钱包,但也非常适合与 Web3 资源交互。我们将使用它来签署交易,例如我们部署智能合约的交易。
下载地址:htt去掉字符ps://metamask.io/download.html
或者火狐插件里搜索Metamask然后添加
单击地址栏中的 Metamask 图标,然后单击“network”下拉菜单,选择“自定义 RPC”
随意输入名字
RPC 网址:http://127.0.0.1:7545
chain ID:1337(Ganache 使用 1337 作为其默认链 ID)
currency symbol :ETH
点击save
如果保存不了,点击右边的networks,然后把多余的那个默认设置删除即可
要导入 Ganache 钱包的私钥,请单击 Metamask 中的“帐户”图标,然后单击“导入帐户”。粘贴要导入的帐户的私钥。
回到Ganache程序内
随意选择一个账户
复制账户密钥,回到metamask
输入账户的密钥,点击import
然后就大功告成了
Remix IDE 是快速开始编写、分析、编译和部署智能合约的绝佳选择。
使用网址为:ht去掉字符tps://remix.ethereum.org/
我们之后再介绍如何使用这个网站
Truffle 是一个用于开发、编译和部署智能合约的框架。
安装环境教程:
进入终端,输入:
wget https://nodejs.org/dist/v16.14.2/node-v16.14.2-linux-x64.tar.xz ##下载软件
tar -xvf node-v16.14.2-linux-x64.tar.xz ##解压缩
mv node-v10.16.3-linux-x64 nodejs ## 重命名文件夹
建立软连接,变为全局
ln -s /home/fog/nodejs/bin/npm /usr/local/bin/
ln -s /home/fog/nodejs/bin/node /usr/bin/
最后检查是否配置成功
node -v
npm -v
如果没有成功,可以看文章顶部,加我qq
安装truffle:
sudo npm install -g truffle
mkdir blockHAX ##创建一个名叫blockhax的文件夹
cd blockHAX ##进入文件夹
truffle init ##初始化truffle
它将创建以下目录和文件
├── contracts
│ └── Migrations.sol
├── migrations
│ └── 1_initial_migration.js
├── test
└── truffle-config.js
文件夹解释:
contracts - 您将存储智能合约 Solidity (.sol) 文件的目录
migrations - 存储文件的目录,告诉 Truffle 如何部署智能合约(即部署它们的顺序,任何构造函数等)
test - 存储测试脚本以测试 Solidity 功能的位置
truffle-config.js - 配置文件,告诉 Truffle 在哪里部署合约(本地实例、测试网、主网等)以及使用什么编译器版本。
配置文件:
进入blockhax的文件夹
安装vim:apt install vim
vim truffle-config.js
添加以下内容
module.exports ={
compilers:{
solc: {
version: "^0.7.5",
}
},
networks: {
"development": {
network_id: "*",
host: "127.0.0.1",
port: 7545
},
}
};
将第50行版本号改为“0.6.4”
保存,大功告成,然后打开metamake
按照我们之前的步骤进行操作后,您现在应该可以编译和部署智能合约了。本节将简要介绍使用 Truffle 和 Remix IDE 编译和部署智能合约的过程
智能合约下载地址:
ht去掉字符tps://github.com/ethereumbook/ethereumbook/blob/develop/code/Solidity/Faucet.sol
复制源代码
在contracts文件夹下创建一个新的文件
touch faucet.sol ##创建文件
vim faucet.sol ##进入文件
然后粘贴源码
truffle compile ##开始编译
如果有什么问题,看文章顶部,加我qq
成功编译合约后,我们将使用“迁移”功能将智能合约部署到我们本地的 Ganache 区块链
truffle migrate
ht去掉字符tps://remix.ethereum.org/
然后删除左边全部的默认文件,只保留文件夹
选择第一个文件夹,右击,新建文件
文件名叫faucet.sol
然后点击左边任务栏最下面的插件按钮
添加如下插件,如果没有solidity compiler logic,则可以不用添加
回到主页面,打开faucet.sol文件,将之前的源码复制进去
// SPDX-License-Identifier: CC-BY-SA-4.0
// Version of Solidity compiler this program was written for
pragma solidity 0.6.4;
// Our first contract is a faucet!
contract Faucet {
// Accept any incoming amount
receive() external payable {}
// Give out ether to anyone who asks
function withdraw(uint withdraw_amount) public {
// Limit withdrawal amount
require(withdraw_amount <= 100000000000000000);
// Send the amount to the address that requested it
msg.sender.transfer(withdraw_amount);
}
}
选择版本号后运行,然后连接metamask,他会自己弹出来的
进入终端
sudo pip3 install mythril
myth analyze ##你要扫描的文件
写了大概两个小时,这篇文章只是部署区块链安全的实验环境,下一篇文章,将教大家如何利用漏洞,偷走池子里全部的比特币,有什么不懂的问题可以加我qq:3316735898