Cover photo

Создаем dApp с помощью EthStorage

EthStorage — это хранилище данных второго уровня, построенное поверх Ethereum. Его цель состоит в достижении «петабайтной емкости при снижении затрат в 1000 раз».

*«Посредством периодической отправки доказательств хранения из EthStorage в основную сеть платформа стремится извлечь выгоду из функций безопасности Ethereum, значительно увеличивая емкость хранилища при значительно сниженных затратах», — говорится в пресс-релизе Gate Ventures.*

По мнению представителей инвестфонда, проект предоставляет функции, которые в настоящее время недоступны у аналогов вроде Arweave и Filecoin.

EthStorage привлек $7 млн посевных инвестиций. По итогам раунда компанию оценили в $100 млн.

post image

Сбор средств возглавил венчурный криптофонд dao5 при участии SevenX Ventures, Foresight Ventures, Sky9 Capital, Gate Ventures и Galxe.

Для выполнения данной активности нам необходима ОС на базе Linux. (Ubuntu) Также у нас должен быть кошелек с более чем 2 sepolia ETH в нем.

Загрузка файлов на сервер

Прежде всего, нам нужно создать каталог dist с помощью этой команды

mkdir dist

Переходим в папку dist:

cd dist

Скачиваем данную картинку к себе на ПК:

https://github-production-user-asset-6210df.s3.amazonaws.com/5291653/329157608-4526caf3-9218-4a23-8619-02f777e6e7fd.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240625%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240625T201707Z&X-Amz-Expires=300&X-Amz-Signature=ab01e581815e29b55714f8d2713d17a09f2c4bc714a7dbbe2d7ee1e8f0bb1f7d&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=0

На сервере открываем папку dist которую создали ранее и загружаем скаченную картинку на сервер в папку dist

post image

Создаем файл app.html:

nano app.html

Видим следующее:

post image

копируем ниже приведенный код и вставляем его в наш app.html и нажимаем клавиши CTRL+X+Y

<html>
    <head>
        <script> 
            async function fetchData() { 
                // web3 URL is define in https://eips.ethereum.org/EIPS/eip-4804, please find more detail on https://web3url.io
                const url = 'web3://0xf14e64285Db115D3711cC5320B37264708A47f89:11155111/greeting'; 
                const response = await fetch(url); 
                const data = await response.text(); 
                document.getElementById('content').textContent = data; 
            } 
            window.onload = fetchData; 
        </script>
    </head>
    <body>
        <div id="content"> Loading greeting... </div>
        <br>
        <img  src="./degen.jpeg"  alt=""> 
    </body> 
</html>

Теперь когда 2 наших файла готовы переходим в папку выше с помощью команды:

cd ..

Устанавливаем ethfs-cli

npm i -g ethfs-cli

если при установке NPM будет ругаться, то прописываем следующее:

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash source ~/.nvm/nvm.sh nvm install --lts nvm use --lts npm --version

Создаем контракт FlatDirectory

Теперь мы должны создать FlatDirectory с помощью этой команды:

ethfs-cli create -p YOUR_WALLET_PRIVATE_KEY -c 11155111

где YOUR WALLET PRIVATE KEY ваш приватный ключ кошелька Метамаск, на кошельке должно быть более 2 ETH в сети Sepolia.

Далее вы увидите следующее:

post image

копируем FlatDirectory address.

Deploy приложения

В этом разделе мы загрузим нашу папку в каталог FlatDirectory, который мы только что создали, с помощью следующей команды:

ethfs-cli upload -f dist -a flat_directory_address -c 11155111 -p YOUR_WALLET_PRIVATE_KEY -t 1

где fiat_directory_address это то что мы скопировали выше и YOUR_WALLET_PRIVATE_KEY наш приватный ключ

Далее вы должны будете увидеть следующее:

post image

Все. Наше развертывание приложения завершено.

Также теперь мы можем получить доступ к нашему Dapp:

web3://:11155111/app.html пример - https://0x49edfb27a463545337487d39a8349760b345f160.sep.w3link.io/app.html Заключительный шаг Теперь нам следует разместить в твиттере созданную на последнем шаге ссылку web3://flat_directory_address... с адресом кошелька, который мы использовали для этого квеста, а также пометить тегом @EthStorage затем заполнить эту форму: https://dawme4mo.forms.app/ethstorage-2nd-campaign-submission?ref=blog.ethstorage.io На этом все ;) Официальная статья квеста: https://ethstorage.medium.com/building-unstoppable-dapps-on-ethereum-ethstorages-2nd-public-testnet-campaign-d70400a5d2c7 Twitter: https://x.com/EthStorage