- Невозможно найти пакет ethereum swarm
- Ответы (4)
- Error when Installing Ethereum: Package ‘ethereum’ has no installation candidate
- 4 Answers 4
- Децентрализованное хранилище данных Ethereum Swarm
- Почему для DApp нужно децентрализованное хранилище данных
- Как работает Ethereum Swarm
- Установка Ethereum Swarm и Geth на Debian и Ubuntu
- Установка Go
- Устанавливаем Geth и Ethereum Swarm
- Подготовка приватного блокчейна для запуска Ethereum Swarm
- Запуск демона swarm
- Загружаем файл в Ethereum Swarm
- Загрузка каталогов с подкаталогами
- Другие возможности Ethereum Swarm
- Модуль Perl Net::Ethereum::Swarm
- Децентрализованное хранилище данных Ethereum Swarm
- Почему для DApp нужно децентрализованное хранилище данных
- Как работает Ethereum Swarm
- Установка Ethereum Swarm и Geth на Debian и Ubuntu
- Установка Go
- Устанавливаем Geth и Ethereum Swarm
- Подготовка приватного блокчейна для запуска Ethereum Swarm
- Запуск демона swarm
- Загружаем файл в Ethereum Swarm
- Загрузка каталогов с подкаталогами
- Другие возможности Ethereum Swarm
- Модуль Perl Net:: Ethereum ::Swarm
Невозможно найти пакет ethereum swarm
285 просмотра
4 ответа
Но при выполнении следующей команды:
Я получаю следующее:
Ответы (4)
1 плюс
Похоже, что существует проблема совместимости с последней стабильной версией Ethereum и Ubuntu 17.10; и последняя нестабильная версия может быть установлена без проблем:
Однако это означает, что в следующей стабильной версии Ethereum проблем не будет.
0 плюса
вы пробовали общие свойства программного обеспечения, сначала используйте эту команду для установки
(1) sudo apt-get установить свойства программного обеспечения-общие
а затем использовать эфириум ppa
(2) sudo add-apt-repository -y ppa: ethereum / ethereum
(3) обновление sudo apt-get
(4) sudo apt-get install ethereum
0 плюса
Установка нестабильной версии ethereum пакета не кажется хорошей идеей.
Учитывая, что этот пакет предназначен только для установки набора файлов (geth, swarm и других инструментов ethereum) в вашу файловую систему. Я бы посоветовал загрузить последнюю стабильную версию непосредственно с серверов Ethereum CDN или скомпилировать их самостоятельно, следуя инструкциям, приведенным на официальном репозитории github.
-1 плюса
попробовать, sudo apt-get установить свойства программного обеспечения-общие sudo add-apt-репозиторий -y ppa: ethereum / ethereum sudo apt-get update sudo apt-get установить ethereum
Источник
Error when Installing Ethereum: Package ‘ethereum’ has no installation candidate
But when executing the following command:
I get the following:
4 Answers 4
It seems that there is a compatibility issue with the last stable version of Ethereum and Ubuntu 17.10; and the latest unstable version could be installed with no issues:
However, this means that in the next stable version of Ethereum there will be no issues.
Have you added the Ethereum repository? If not, try the following:
have you tried common software properties first use this command to install this
(1) sudo apt-get install software-properties-common
and then use ethereum ppa
(2) sudo add-apt-repository -y ppa:ethereum/ethereum
(3) sudo apt-get update
(4) sudo apt-get install ethereum
Installing an unstable version of ethereum package does not seem like a good idea.
Considering that package is only about installing a bunch of binaries (geth, swarm and other ethereum tools) into your filesystem. I would suggest to download the latest stable version directly from ethereum CDN servers or compile them yourself following the instructions described at their official github repo
Источник
Децентрализованное хранилище данных Ethereum Swarm
Блокчейн Ethereum интересен своими смарт-контрактами, а также возможностью создания децентрализованных приложений DApp (Decentralized Application). Однако такому приложению необходимо децентрализованное хранилище данных.
Хранение данных большого объема в блокчейне может стоить немалых денег. На помощь приходят такие децентрализованные хранилища, как Ethereum Swarm («swarm» переводится как «рой», «куча»). Если кратко, то Ethereum Swarm представляет собой программный код, работающий на пиринговой сети Ethereum. Он обеспечивает децентрализованное хранение данных на дисках узлов, владельцы которых отдают свои ресурсы в общее пользование.
В этой статье мы расскажем о том, как установить локальный узел Ethereum Swarm для приватной сети Ethereum с целью тестирования технологии и разработки децентрализованных приложений, хранящих данные в Ethereum Swarm.
Почему для DApp нужно децентрализованное хранилище данных
Блокчейн Ethereum (как и другие блокчейны) представляет собой распределенный журнал, очень хорошо защищенный от подделок и атак со стороны злоумышленников.
Защита эта достигается, с одной стороны, использованием хеширования и криптографических алгоритмов, алгоритмов добавления новых блоков в блокчейн, а с другой — огромным количеством узлов Ethereum, обеспечивающих хранение данных и обработку транзакций. Эти узлы расположены по всему миру. Ни у кого нет достаточно ресурсов, чтобы «сломать» блокчейн, и это обеспечивает доверие к записанной в нем информации.
«SkyNet всюду и нигде единого центра нет. Отключать нечего.» (Терминатор-3: Восстание машин)
Но как я уже отмечал выше, блокчейн не подходит для хранения данных большого объема, таких как документы, изображения, описания товаров, заказы и т.п. Теоретически вы, конечно, можете записать их в блокчейн, но стоимость записи будет слишком велика.
Где же хранить данные DApp большого объема?
Например, вы собираетесь при помощи блокчейна зафиксировать авторские права на изображения, сохранить навсегда сведения о заказе, сделанном в интернет-магазине, или сохранить сканы бумажных документов. Здесь потребуется какое-то другое хранилище данных.
Конечно, для хранения данных DApp вы можете арендовать сервер, место в облачном хранилище или использовать какое-либо другое традиционное хранилище. Но серверы, облака и хранилища контролируются компаниями или отдельными людьми. Они могут быть заблокированы по какой-либо причине или атакованы злоумышленниками.
При использовании централизованного хранилища теряется основное преимущество DApp — устойчивость к атакам и действиям злоумышленников. Более того, ваше приложение перестает быть децентрализованным. А значит теряется и доверие к DApp. Ведь если заблокировать или нарушить работу централизованного хранилища, пропадет доступ к части информации, зафиксированной DApp при помощи блокчейна, и пропадет весь смысл использования DApp.
Как работает Ethereum Swarm
Представьте себе, что по всеми миру разбросаны десятки тысяч узлов сети Ethereum Swarm, которые предоставляют свои ресурсы для хранения данных, загруженных пользователями. Предполагается, что владельцы узлов будут получать вознаграждение за предоставление ресурсов, при этом стоимость размещения данных будет ниже, чем в традиционных облачных хранилищах.
Когда пользователь загружает файл в сеть Ethereum Swarm, этот файл сначала попадает на один из узлов. Далее файл реплицируется на остальные узлы сети в процессе синхронизации. При этом используется протокол bzz, работающий поверх сети Ethereum.
До тех пор пока работает хоть один узел Ethereum Swarm, загруженный файл остается доступным. Это обеспечивает надежность хранения данных, т.к. практически невозможно вывести из строя или заблокировать огромное количество узлов Ethereum Swarm.
Подробнее обо все этом вы сможете прочитать на сайте Ethereum Swarm.
В документации отмечено, что к настоящему моменту Ethereum Swarm реализован в версии 0.2 как доказательство концепции (POC, proof of concept). В этой версии сохранность загруженных данных не гарантируется. Стабильный релиз ожидается во втором квартале 2018 года, так что ждать осталось недолго. Тогда же планируется создание системы вознаграждений за предоставление ресурсов для сети Ethereum Swarm.
Однако мы не будем ничего ждать, а начнем тестировать Ethereum Swarm прямо сейчас. Мы создадим собственный узел Ethereum Swarm в своей приватной сети Ethereum.
Установка Ethereum Swarm и Geth на Debian и Ubuntu
Я расскажу об установке Ethereum Swarm на серверах Debian и Ubuntu. В целом нужно действовать по этой инструкции, но есть некоторые нюансы.
Установка Go
Очень важно перед началом работ установить Go новой версии, не ниже 1.9.2. В репозитории Debian и Ubuntu могут быть старые версии Go, поэтому устанавливаем из исходников.
Скачиваем и распаковываем исходники под непривилегированным пользователем:
Создаем у пользователя каталог go и устанавливаем переменные окружения:
Проверяем, что переменные окружения установлены:
В операционной системе Debian вместо файла .bashrc используйте файл .profile. Можно просто скопировать:
Проверяем версию go:
Версия go должна быть не ниже 1.9.2.
Если ранее была установлена старая версия go из репозитория ОС, удаляем ее так:
Устанавливаем Geth и Ethereum Swarm
Загружаем исходный код из репозитория:
Запускаем компиляцию клиента geth и демона swarm:
Проверяем версию установленного geth и swarm:
Подготовка приватного блокчейна для запуска Ethereum Swarm
Прежде всего, создайте в домашнем каталоге пользователя файл genesis.json:
Далее создайте в домашнем каталоге подкаталог node1:
Инициализацию узла можно сделать при помощи пакетного файла init_node.sh:
При запуске этого файла будет создан аккаунт и запрошен пароль, который вам необходимо сохранить в безопасном месте.
Создайте файл start_node.sh для запуска узла:
Запустите этот файл и дождитесь завершения генерации DAG.
С помощью файла attach_node.sh вы сможете открыть консоль geth и подключиться к приватному узлу:
Запуск демона swarm
Здесь вам потребуется адрес аккаунта, созданного на этапе инициализации узла. Если вы его не сохранили, ничего страшного. Просто зайтите в консоль geth, открытую с помощью скрипта attach_node.sh, и выдайте там следующую команду:
Команда покажет адрес созданных учетных записей. Сразу после инициализации там будет только один адрес.
Для запуска демона Ethereum Swarm в режиме единственного узла (Singleton) подготовьте командный файл swarm_start.sh:
Укажите в нем адрес аккаунта, созданного на вашем узле, без «0x».
При запуске демона вам будет нужно ввести пароль от созданного ранее аккаунта:
Загружаем файл в Ethereum Swarm
Проще всего загрузить файл с помощью команды swarm с параметром up. Дополнительно нужно указать путь к загружаемому файлу:
Данная команда вернет хеш загруженного файла. Хеш можно использовать для чтения файла. Вы можете это сделать с помощью команд wget или curl:
Команда wget позволяет сохранить содержимое файла на локальном диске. Используйте параметр -O, чтобы задать имя файла. Команда curl выведет содержимое файла на консоль, поэтому в таком виде ее не следует использовать для просмотра содержимого бинарных файлов. В конце URL необходим слеш, иначе произойдет редирект.
Когда файл загружается в Ethereum Swarm описанным выше образом, для него создается и сохраняется так называемый манифест. Это заголовок, описывающий содержимое, доступное в хранилище по заданному идентификатору.
Ниже мы загрузили файл Net-Ethereum-0.28.tar.gz с помощью простой команды swarm up:
Теперь, указав протокол bzz-list, мы можем просмотреть манифест:
Манифест будет показан в формате JSON.
В манифесте хранится пусть к файлу (имя файла), его размер, тип (Content Type), дата и время модификации, а также хеш файла.
Чтобы извлечь содержимое файла по его идентификатору и сохранить под именем t.tar.gz, сделайте так:
Загрузка каталогов с подкаталогами
Для рекурсивной загрузки каталога вместе с его содержимым в хранилище Ethereum Swarm укажите параметр —recursive:
В манифесте будет показана информация обо всех файлах загруженного подкаталога:
Другие возможности Ethereum Swarm
В этой статье я не рассказал обо всех возможностях Ethereum Swarm, ограничившись лишь самым необходимым.
Помимо загрузки отдельных файлов и содержимого каталогов вы можете добавлять данные к манифесту. При этом создается новый элемент данных с дополненным манифестом и с добавленными файлами.
Есть возможность загружать файлы без манифеста, а также считывать их в так называемом «сыром» (raw) виде.
При считывании файла можно указывать его имя (полностью или частично). При этом будет задействован сервис имен ENS (Ethereum Name Service). Такая возможность позволит вам получить только некоторые файлы из блока, объединенного общим манифестом.
Я также не описал SWarm Accounting Protocol (SWAP) и некоторые другие возможности. Проект Ethereum Swarm активно развивается, в нем обязательно появится еще что-нибудь интересное для разработчиков децентрализованных приложений.
Модуль Perl Net::Ethereum::Swarm
Для того чтобы работать с децентрализованным хранилищем данных Ethereum Swarm в системах, написанных на языке Perl, я разработал и выложил на CPAN модуль Net::Ethereum::Swarm.
С помощью этого модуля вы сможете загружать в Ethereum Swarm текстовые и бинарные файлы, получать манифест для загруженных данных, а также загружать файлы из Ethereum Swarm по их идентификатору.
Модуль Net::Ethereum::Swarm работает с узлом Ethereum Swarm с помощью HTTP-запросов GET и POST. Использование запросов описано в разделе The HTTP API документации.
Взаимодействие через HTTP-запросы можно легко реализовать практически на любом языке программирования.
Источник
Децентрализованное хранилище данных Ethereum Swarm
Блокчейн Ethereum интересен своими смарт-контрактами, а также возможностью создания децентрализованных приложений DApp (Decentralized Application). Однако такому приложению необходимо децентрализованное хранилище данных.
Хранение данных большого объема в блокчейне может стоить немалых денег. На помощь приходят такие децентрализованные хранилища, как Ethereum Swarm («swarm» переводится как «рой», «куча»). Если кратко, то Ethereum Swarm представляет собой программный код, работающий на пиринговой сети Ethereum . Он обеспечивает децентрализованное хранение данных на дисках узлов, владельцы которых отдают свои ресурсы в общее пользование.
В этой статье мы расскажем о том, как установить локальный узел Ethereum Swarm для приватной сети Ethereum с целью тестирования технологии и разработки децентрализованных приложений, хранящих данные в Ethereum Swarm.
Почему для DApp нужно децентрализованное хранилище данных
Блокчейн Ethereum (как и другие блокчейны) представляет собой распределенный журнал, очень хорошо защищенный от подделок и атак со стороны злоумышленников.
Защита эта достигается, с одной стороны, использованием хеширования и криптографических алгоритмов, алгоритмов добавления новых блоков в блокчейн , а с другой — огромным количеством узлов Ethereum , обеспечивающих хранение данных и обработку транзакций. Эти узлы расположены по всему миру. Ни у кого нет достаточно ресурсов, чтобы «сломать» блокчейн , и это обеспечивает доверие к записанной в нем информации.
«SkyNet всюду и нигде единого центра нет. Отключать нечего.» (Терминатор-3: Восстание машин)
Но как я уже отмечал выше, блокчейн не подходит для хранения данных большого объема, таких как документы, изображения, описания товаров, заказы и т.п. Теоретически вы, конечно, можете записать их в блокчейн , но стоимость записи будет слишком велика.
Где же хранить данные DApp большого объема?
Например, вы собираетесь при помощи блокчейна зафиксировать авторские права на изображения, сохранить навсегда сведения о заказе, сделанном в интернет-магазине, или сохранить сканы бумажных документов. Здесь потребуется какое-то другое хранилище данных.
Конечно, для хранения данных DApp вы можете арендовать сервер, место в облачном хранилище или использовать какое-либо другое традиционное хранилище. Но серверы, облака и хранилища контролируются компаниями или отдельными людьми. Они могут быть заблокированы по какой-либо причине или атакованы злоумышленниками.
При использовании централизованного хранилища теряется основное преимущество DApp — устойчивость к атакам и действиям злоумышленников. Более того, ваше приложение перестает быть децентрализованным. А значит теряется и доверие к DApp. Ведь если заблокировать или нарушить работу централизованного хранилища, пропадет доступ к части информации, зафиксированной DApp при помощи блокчейна , и пропадет весь смысл использования DApp.
Как работает Ethereum Swarm
Представьте себе, что по всеми миру разбросаны десятки тысяч узлов сети Ethereum Swarm, которые предоставляют свои ресурсы для хранения данных, загруженных пользователями. Предполагается, что владельцы узлов будут получать вознаграждение за предоставление ресурсов, при этом стоимость размещения данных будет ниже, чем в традиционных облачных хранилищах.
Когда пользователь загружает файл в сеть Ethereum Swarm, этот файл сначала попадает на один из узлов. Далее файл реплицируется на остальные узлы сети в процессе синхронизации. При этом используется протокол bzz, работающий поверх сети Ethereum .
До тех пор пока работает хоть один узел Ethereum Swarm, загруженный файл остается доступным. Это обеспечивает надежность хранения данных, т.к. практически невозможно вывести из строя или заблокировать огромное количество узлов Ethereum Swarm.
Подробнее обо все этом вы сможете прочитать на сайте Ethereum Swarm.
В документации отмечено, что к настоящему моменту Ethereum Swarm реализован в версии 0.2 как доказательство концепции (POC, proof of concept). В этой версии сохранность загруженных данных не гарантируется. Стабильный релиз ожидается во втором квартале 2018 года, так что ждать осталось недолго. Тогда же планируется создание системы вознаграждений за предоставление ресурсов для сети Ethereum Swarm.
Однако мы не будем ничего ждать, а начнем тестировать Ethereum Swarm прямо сейчас. Мы создадим собственный узел Ethereum Swarm в своей приватной сети Ethereum .
Установка Ethereum Swarm и Geth на Debian и Ubuntu
Я расскажу об установке Ethereum Swarm на серверах Debian и Ubuntu. В целом нужно действовать по этой инструкции, но есть некоторые нюансы.
Установка Go
Очень важно перед началом работ установить Go новой версии, не ниже 1.9.2. В репозитории Debian и Ubuntu могут быть старые версии Go, поэтому устанавливаем из исходников.
Скачиваем и распаковываем исходники под непривилегированным пользователем:
Создаем у пользователя каталог go и устанавливаем переменные окружения:
Проверяем, что переменные окружения установлены:
В операционной системе Debian вместо файла .bashrc используйте файл .profile. Можно просто скопировать:
Проверяем версию go:
Версия go должна быть не ниже 1.9.2.
Если ранее была установлена старая версия go из репозитория ОС, удаляем ее так:
Устанавливаем Geth и Ethereum Swarm
Загружаем исходный код из репозитория:
Запускаем компиляцию клиента geth и демона swarm:
Проверяем версию установленного geth и swarm:
Подготовка приватного блокчейна для запуска Ethereum Swarm
Прежде всего, создайте в домашнем каталоге пользователя файл genesis.json:
Далее создайте в домашнем каталоге подкаталог node1:
Инициализацию узла можно сделать при помощи пакетного файла init_node.sh:
При запуске этого файла будет создан аккаунт и запрошен пароль, который вам необходимо сохранить в безопасном месте.
Создайте файл start_node.sh для запуска узла:
Запустите этот файл и дождитесь завершения генерации DAG.
С помощью файла attach_node.sh вы сможете открыть консоль geth и подключиться к приватному узлу:
Запуск демона swarm
Здесь вам потребуется адрес аккаунта, созданного на этапе инициализации узла. Если вы его не сохранили, ничего страшного. Просто зайтите в консоль geth, открытую с помощью скрипта attach_node.sh, и выдайте там следующую команду:
Команда покажет адрес созданных учетных записей. Сразу после инициализации там будет только один адрес.
Для запуска демона Ethereum Swarm в режиме единственного узла (Singleton) подготовьте командный файл swarm_start.sh:
Укажите в нем адрес аккаунта, созданного на вашем узле, без «0x».
При запуске демона вам будет нужно ввести пароль от созданного ранее аккаунта:
Загружаем файл в Ethereum Swarm
Проще всего загрузить файл с помощью команды swarm с параметром up. Дополнительно нужно указать путь к загружаемому файлу:
Данная команда вернет хеш загруженного файла. Хеш можно использовать для чтения файла. Вы можете это сделать с помощью команд wget или curl:
Команда wget позволяет сохранить содержимое файла на локальном диске. Используйте параметр -O, чтобы задать имя файла. Команда curl выведет содержимое файла на консоль, поэтому в таком виде ее не следует использовать для просмотра содержимого бинарных файлов. В конце URL необходим слеш, иначе произойдет редирект.
Когда файл загружается в Ethereum Swarm описанным выше образом, для него создается и сохраняется так называемый манифест. Это заголовок, описывающий содержимое, доступное в хранилище по заданному идентификатору.
Ниже мы загрузили файл Net-Ethereum-0.28.tar.gz с помощью простой команды swarm up:
Теперь, указав протокол bzz-list, мы можем просмотреть манифест:
Манифест будет показан в формате JSON.
В манифесте хранится пусть к файлу (имя файла), его размер, тип (Content Type), дата и время модификации, а также хеш файла.
Чтобы извлечь содержимое файла по его идентификатору и сохранить под именем t.tar.gz, сделайте так:
Загрузка каталогов с подкаталогами
Для рекурсивной загрузки каталога вместе с его содержимым в хранилище Ethereum Swarm укажите параметр —recursive:
В манифесте будет показана информация обо всех файлах загруженного подкаталога:
Другие возможности Ethereum Swarm
В этой статье я не рассказал обо всех возможностях Ethereum Swarm, ограничившись лишь самым необходимым.
Помимо загрузки отдельных файлов и содержимого каталогов вы можете добавлять данные к манифесту. При этом создается новый элемент данных с дополненным манифестом и с добавленными файлами.
Есть возможность загружать файлы без манифеста, а также считывать их в так называемом «сыром» (raw) виде.
При считывании файла можно указывать его имя (полностью или частично). При этом будет задействован сервис имен ENS ( Ethereum Name Service). Такая возможность позволит вам получить только некоторые файлы из блока, объединенного общим манифестом.
Я также не описал SWarm Accounting Protocol (SWAP) и некоторые другие возможности. Проект Ethereum Swarm активно развивается, в нем обязательно появится еще что-нибудь интересное для разработчиков децентрализованных приложений.
Модуль Perl Net:: Ethereum ::Swarm
Для того чтобы работать с децентрализованным хранилищем данных Ethereum Swarm в системах, написанных на языке Perl, я разработал и выложил на CPAN модуль Net:: Ethereum ::Swarm.
С помощью этого модуля вы сможете загружать в Ethereum Swarm текстовые и бинарные файлы, получать манифест для загруженных данных, а также загружать файлы из Ethereum Swarm по их идентификатору.
Модуль Net:: Ethereum ::Swarm работает с узлом Ethereum Swarm с помощью HTTP-запросов GET и POST. Использование запросов описано в разделе The HTTP API документации.
Взаимодействие через HTTP-запросы можно легко реализовать практически на любом языке программирования.
Источник