区块链安全快速入门(2)//区块链实验环境搭建(blockchain security)

Ba1_Ma0 2022-04-06 05:24:10 阅读数:392

快速 安全 区块 入门

简介

这篇文章将教大家如何搭建区块链环境和区块链安全的工具,最好先看一下我之前写的区块链安全介绍,因为我的外部链接太多,审核一直不通过,所以麻烦大家去掉字符即可,有什么不懂的问题可以加我qq:3316735898

VMware

下载地址:htt去掉字符ps://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html

安装包教程可以参考百度上的教程,不是很难,一直next就好了

CloudBreach虚拟机

下载地址:ht去掉字符tps://breakforgearchive.s3.amazonaws.com/cloudbreach-linux.zip

我们的环境将在这台虚拟机上部署
下载完后解压缩,进入目录
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
或者双击直接打开.ovf文件,设置虚拟机名字和保存的文件夹就好了

Fananche安装

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安装

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

Remix IDE 是快速开始编写、分析、编译和部署智能合约的绝佳选择。

使用网址为:ht去掉字符tps://remix.ethereum.org/

我们之后再介绍如何使用这个网站

Truffle

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

在这里插入图片描述
大功告成
Remix IDE 智能合约部署,网站为:

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

版权声明:本文为[Ba1_Ma0]所创,转载请带上原文链接,感谢。 https://blog.csdn.net/qq_45894840/article/details/123979675