Последнее время начал интересоваться безопасностью блокчейн и нашел в сети CTF Sherlok. Для прохождения Sherlok нужно подключиться к сети Rinkeby, которая является тестовой сетью Ethereum. В статье покажу, как установить, настроить и подключиться к сети Rinkeby в Linux.
Еще по теме: Экстренное удаление при вводе специального пароля Linux
Установка и настройка Rinkeby в Linux
Для подключения к тестовой сети Rinkeby необходимо установить ряд дополнительных инструментов. Приступим к установке и настройке Rinkeby на Ubuntu 20.
Установка node.js и дополнительных инструментов
1 |
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -sudo apt -y install nodejs |
1 |
sudo apt -y install gcc g++ make |
Yarn нам понадобится позже, поэтому устанавливаем и его:
1 |
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -echo “deb https://dl.yarnpkg.com/debian/ stable main” | sudo tee /etc/apt/sources.list.d/yarn.listsudo apt update && sudo apt install yarn |
Установка Truffle и Geth
Truffle — это среда разработки блокчейн.
1 |
sudo npm install -g truffle |
Geth — это интерфейс командной строки для запуска узла Etherum. Он написан на Go — отсюда и название Go Ethereum.
1 2 3 |
sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install Ethereum |
Установка metamask
Установите кошелек metamask. В нем будете хранить свои токены ETH, для совершения транзакций в сети. Metamask устанавливается в виде расширения для браузера.
Если у вас есть какая-нибудь криптовалюта, НЕ используйте для нее кошелек тестовой сети или свой существующий кошелек для тестовой сети.
Создание аккаунта Infura
Infura — это онлайн-сервис, который обеспечивает доступ HTTPS / WebSockets к сети Ethereum.
Для подключения к Rinkeby выберите конечную точку Rinkeby. Когда закончите, сохраните свой ID проекта. Это будет выглядеть как
1 |
https://rinkeby.infura.io/v3/791f1[...]722 |
Установка HDWalletProvider
HDWalletProvider позволит подписывать транзакции, используя свой кошелек.
1 |
npm install truffle-hdwallet-provider |
Изменение файла truffle.js
Отредактируйте файл truffle.js, чтобы настроить поставщик truffle-hdwaller и подключение к сети Rinkeby.
- Перейдите в ваш домашний каталог
- Создайте новый каталог (я назвал свой «Rinkeby-1»)
- Создайте внутри файл truffle.js со следующим содержимым:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
var HDWalletProvider = require("truffle-hdwallet-provider"); var mnemonic = "orange apple banana [your metamask secret words here]";module.exports = { networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*" }, rinkeby: { provider: function() { return new HDWalletProvider(mnemonic, "https://rinkeby.infura.io/v3/"); }, network_id: 4, gas: 4500000, gasPrice: 10000000000, } } }; |
Получение Ethereum
При работе в тестовой сети, такой как Rinkeby, нам не нужно покупать Эфириум за реальные деньги.
Все, что нужно сделать, это зайти в Rinkeby Faucet, опубликовать только свой адрес метамаски в Twitter или Facebook и вставить ссылку на свой пост / твит в сборщик. Через несколько минут вы должны получить ETH. Краткое руководство можно найти здесь.
Подключение к сети Rinkeby
Перейдите в созданный каталог Rinkeby-1, в котором был создан файл config и выполните команды:
1 |
truffle console --network rinkeby |
Если не сработает, попробуйте команду migrate:
1 2 |
truffle migrate --network rinkeby truffle console --network rinkeby |
Когда появиться приглашение консоли truffle, попробуйте проверить некоторые транзакции, например из упомянутой задачи CTF Sherlok.
1 2 |
addr = "0x3a6CAE3af284C82934174F693151842Bc71b02b2" web3.eth.getStorageAt(addr,0) |
Заключение
На этом все. Теперь вы знаете, как подключиться к тестовой сети Rinkeby.
Еще по теме: Использование консольного менеджера паролей Pass