субота, 29 червня 2024 р.

I2P over Yggdrasil: анонимность в меш-сетях

I2P over Yggdrasil: анонимность в меш-сетях

Граб
мин.

I2P (Invisible Internet Protocol) – свободный инструмент организации анонимных коммуникаций через интернет. Является одноранговой сетью, в которой каждый пользователь по умолчанию является потенциальным звеном в анонимной цепочке других участников сети. Трафик I2P зашифрован и не поддается анализу. Понятие «сторожевого» узла в I2P, которое присутствует в сети Tor, нет: не существует никакого постоянного узла, через который осуществляется выход в сеть. Взаимодействие пользователя с I2P на стороне домашнего провайдера идентифицируется, как хаотичное подключение к случайным хостам. Количество подключений клиента с белым IP в среднем варьируется у отметки в четыре тысячи. Помимо полезной нагрузки, сюда входят обмен служебной информацией с другими роутерами сети и транзитный трафик.

Предпосылки

Существенное слабое место сети I2P заключается в необходимости обращения к одному из стартовых узлов через обычный интернет при первом запуске. Пакет с начальным рисунком сети в виде нескольких случайных роутеров и узел, который его отдает, называются ресидом. Стартовые узлы держат энтузиасты, их список имеется в общем доступе и нередко претерпевает изменения в силу обычных человеческих обстоятельств. Бутылочное горлышко заключается в возможности на стороне провайдера идентифицировать большинство обращений к ресиду через мониторинг DNS-запросов, а также в блокировке доменов стартовых узлов, что затруднит первый запуск для неопытного пользователя, т.к. потребует использование прокси или VPN.

Блокировка запроса к ресиду на стороне провайдера
Блокировка запроса к ресиду на стороне провайдера

В отличие от обычного интернета, пользователи I2P без выделенного адреса имеют худшее качество использования скрытой сети, чем абоненты с белым IP. Это связано с постоянной необходимостью прямого сообщения с другими роутерами сети. Каждый роутер публикует свой адрес, который включает в себя ключи шифрования, IP-адрес и порт для приема сообщений. Очевидно, что достучаться до узла сети за NAT-сервером – задача не из простых.

Разница между пользователем с выделенным IP и пользователем за NAT-ом
Разница между пользователем с выделенным IP и пользователем за NAT-ом

Однако работа роутеров без выделенного адреса возможна: клиенту сети за NAT-ом приходится постоянно поддерживать активное UDP-соединение, резервируя на выходном сервере провайдера порт, обращения на который будут переданы клиенту. Этот сценарий весьма сложен, особенно, когда речь заходит про инициализацию соединения извне. Механика работы клиента за NAT-ом – произведение инженерной мысли, которое заслуживает отдельной статьи.

Коротко об Иггдрасиле

Yggdrasil Network – один из немногих работоспособных протоколов меш-сетей. Основная концепция заключатся в автоматической маршрутизации во внутренней IPv6 подсети (200::/7) и абсолютной масштабируемости. Yggdrasil является полностью одноранговой сетью: не существует каких-либо «мастер-узлов», которым делегируется какая-то глобальная ответственность. Является идеологическим продолжением проекта CJDNS (Hyperboria).

Абстрактная идея меш-сети во главу угла ставит производительность, приватность и простоту использования: шифрование трафика и низкий порог вхождения новых пользователей. Yggdrasil не является инструментом анонимности, т.к. ближайшие к пользователю узлы видят его реальные сетевые интерфейсы в локальной сети, либо IP-адрес при подключении к публичному пиру через интернет. Меш-сети находят применение в организации псевдолокальных сетей, объединяя удаленные компьютеры в одну IPv6-сеть (по аналогии с Hamachi для игры в Minecraft и прочие мультиплеерные игры). Также служит для организации прочих внутрисетевых ресурсов вроде сайтов и VoIP-телефонии.

Первые попытки интеграции

Небольшое замечание

I2P-роутер публикует свои адреса, в том числе IPv6, если он включен в конфиге и имеется фактически. Так как Yggdrasil предоставляет пользователю не локальный прокси, а полноценный сетевой интерфейс (используя драйвер TUN от WireGuard), до недавних пор I2P-роутер публиковал адрес IPv6 из подсети Yggdrasil. Так как пользователей с включенным протоколом IPv6 в конфигурации I2P-роутера и установленным Yggdrasil было больше, чем один и даже два, периодически можно было видеть, что клиент I2P (роутер) сообщается с другими Yggdrasil-адресами.

Однако на лицо следующие недостатки:

  1. обращение к ресиду в конечном счете должно осуществляться через обычный интернет;

  2. опубликованный роутером адрес IPv6-Yggdrasil для подавляющего большинства пользователей I2P является неизвестным и недоступным;

  3. успешный запуск I2P-роутера на Yggdrasil-Only устройстве маловероятен в силу возможного отсутствия в ресиде или локальной базе роутера узлов с адресом IPv6-Yggdrasil.

Начало полной совместимости

С версии 2.36.0 i2pd имеет несколько новых конфигурационных параметров, главный из которых meshnets.yggdrasil=true. Этот параметр не зависит от конфигурации IPv4 и IPv6. В частности, реальные сетевые интерфейсы могут быть отключены. В таком случае I2P-роутер будет работать в режиме Yggdrasil-Only.

Также организован специальный ресид, доступный из Yggdrasil и отдающий пользователю пакет в первую очередь состоящий из известных роутеров с адресом IPv6-Yggdrasil. При каждом запуске I2P-роутера, работающего в режиме Yggdrasil-Only, проводится проверка наличия в локальной базе доступных узлов на транспортном уровне, т.е. наличие других узлов с IPv6-Yggdrasil. Если по каким-то причинам совместимых роутеров в локальной базе не оказалось, происходит повторное обращение к Yggdrasil-ресиду.

При современном использовании Yggdrasil по большей части через оверлейные подключения к публичным пирам через интернет, работа I2P-роутера в Yggdrasil сравнима со связкой “Tor-over-VPN”: подобный подход полностью скрывает факт использования скрытой сети от домашнего провайдера. В случае с I2P имеется еще одно специфичное преимущество: пользователю не нужно иметь выделенный IP от провайдера для беспроблемных внешних обращений, т.к. IPv6-Yggdrasil является глобально доступным в рамках сегмента сети Yggdrasil (физически соединенной группы участников, в том числе через публичные пиры в интернете).

Целостность сети

Описанное решение не является фактором фрагментации I2P. Построение туннелей скрытой сети – весьма емкий и даже ювелирный процесс, в рамках которого в том числе происходит согласование транспортных возможностей узлов. Формируя «чеснок» - зашифрованное сообщение группе узлов, которые должны образовать туннель, - роутер проверяет их адреса на совместимость. Например, узел с единственным адресом IPv4 не получит инструкцию, согласно которой ему необходимо установить контакт с адресом IPv6, т.к. это заведомо невозможно.

Чтобы Yggdrasil-Only роутеру построить туннель до узла с адресом из обычного интернета, как минимум будет подобран транзитный роутер, имеющий два интерфейса: IPv6-Yggdrasil и, например, обычный IPv4. В свою очередь, другие Yggdrasil-Only роутеры также могут выступать транзитными звеньями туннеля, но только для сообщения с узлами совместимыми по транспорту, т.е. также имеющими сетевой интерфейс Yggdrasil. Чем больше в сети I2P количество роутеров с одновременно включенными IPv4, IPv6 и Yggdrasil интерфейсами, тем связнее сеть.

Подключение к I2P через Yggdrasil
Подключение к I2P через Yggdrasil

Перспектива

Пример с Yggdrasil является частным шагом в будущее, а не самоцелью. Описанный опыт успешной интеграции скрытой сети в меш-сеть является важным концептуальным шагом, который при надобности позволит интегрировать сеть I2P в другие меш-сети. Перспектива открывается при рассмотрении самоорганизованных сегментов меш-сети, например, в многоквартирных домах без централизованного провайдера. В локальной сети клиент Yggdrasil автоматически находит другие узлы и сообщается с ними, сам выступая при надобности транзитным. При подключении хотя бы одного узла в таком сегменте к другому сегменту сети (например, к глобальному через интернет), сети автоматически объединяются. Такой подход к организации сети стал еще реальнее, т.к. теперь имеет место быть и вторая сторона привычного интернета – скрытая.


Для более детального ознакомления с упомянутыми технологями, рекомендую статьи: про I2P и про Yggdrasil.

I2P over Yggdrasil: анонімність у меш-мережах

I2P over Yggdrasil: анонімність у меш-мережах

Грабовий
хв

I2P (Invisible Internet Protocol) – вільний інструмент для організації анонімних комунікацій через інтернет. Є одноранговою мережею, у якій кожен користувач за промовчанням є потенційною ланкою в анонімному ланцюжку інших учасників мережі. Трафік I2P зашифрований та не піддається аналізу. Поняття «сторожового» вузла в I2P, яке є у мережі Tor, немає: немає постійного вузла, через який здійснюється вихід у мережу. Взаємодія користувача з I2P на стороні домашнього провайдера ідентифікується як хаотичне підключення до випадкових хостів. Кількість підключень клієнта з білим IP в середньому варіюється біля позначки чотири тисячі. Окрім корисного навантаження, сюди входять обмін службовою інформацією з іншими роутерами мережі та транзитний трафік.

Передумови

Істотне слабке місце мережі I2P полягає у необхідності звернення до одного із стартових вузлів через звичайний інтернет при першому запуску. Пакет з початковим малюнком мережі у вигляді кількох випадкових роутерів та вузол, що його віддає, називаються ресидом. Стартові вузли тримають ентузіасти, їх список є в загальному доступі і нерідко зазнає змін через звичайні людські обставини. Пляшкова шийка полягає в можливості на стороні провайдера ідентифікувати більшість звернень до ресиду через моніторинг DNS-запитів, а також блокування доменів стартових вузлів, що ускладнить перший запуск для недосвідченого користувача, т.к. вимагатиме використання проксі або VPN.

Блокування запиту до ресида на стороні провайдера
Блокування запиту до ресида на стороні провайдера

На відміну від звичайного інтернету, користувачі I2P без виділеної адреси мають гіршу якість використання прихованої мережі ніж абоненти з білим IP. Це з постійною необхідністю прямого повідомлення з іншими роутерами мережі. Кожен роутер публікує свою адресу, яка включає ключі шифрування, IP-адресу і порт для прийому повідомлень. Очевидно, що достукатися до вузла мережі за NAT-сервером – завдання не просто.

Різниця між користувачем із виділеним IP та користувачем за NAT-ом
Різниця між користувачем із виділеним IP та користувачем за NAT-ом

Однак робота роутерів без виділеної адреси можлива: клієнту мережі за NAT-ом доводиться постійно підтримувати активне UDP-з'єднання, резервуючи на вихідному сервері провайдера порт, звернення на який буде передано клієнту. Цей сценарій дуже складний, особливо коли мова заходить про ініціалізацію з'єднання ззовні. Механіка роботи клієнта за NAT-ом – твір інженерної думки, який заслуговує на окрему статтю.

Коротко про Іггдрасіль

Yggdrasil Network – один із небагатьох працездатних протоколів меш-мереж. Основна концепція полягає в автоматичній маршрутизації у внутрішній IPv6 підмережі (200::/7) та абсолютній масштабованості. Yggdrasil є повністю одноранговою мережею: немає жодних «майстер-вузлів», яким делегується якась глобальна відповідальність. Є ідеологічним продовженням проекту CJDNS (Hyperboria).

Абстрактна ідея меш-сети на чільне місце ставить продуктивність, приватність і простоту використання: шифрування трафіку і низький поріг входження нових користувачів. Yggdrasil є інструментом анонімності, т.к. Найближчі до користувача вузли бачать його реальні мережеві інтерфейси в локальній мережі, або IP-адреса при підключенні до публічного бенкету через інтернет. Меш-мережі знаходять застосування в організації псевдолокальних мереж, поєднуючи віддалені комп'ютери в одну IPv6-мережу (за аналогією з Hamachi для гри в Minecraft та інші мультиплеєрні ігри). Також служить для організації інших внутрішньомережевих ресурсів на кшталт сайтів та VoIP-телефонії.

Перші спроби інтеграції

Невелике зауваження

I2P-роутер публікує свої адреси, у тому числі IPv6, якщо він увімкнений у конфізі і є фактично. Оскільки Yggdrasil надає користувачеві не локальний проксі, а повноцінний мережевий інтерфейс (використовуючи драйвер TUN від WireGuard), донедавна I2P-роутер публікував адресу IPv6 з підмережі Yggdrasil. Оскільки користувачів з увімкненим протоколом IPv6 у конфігурації I2P-роутера та встановленим Yggdrasil було більше, ніж один і навіть два, періодично можна було бачити, що клієнт I2P (роутер) повідомляється з іншими Yggdrasil-адресами.

Проте в наявності такі недоліки:

  1. звернення до ресиду зрештою має здійснюватися через звичайний інтернет;

  2. опублікована роутером адреса IPv6-Yggdrasil для переважної більшості користувачів I2P є невідомою та недоступною;

  3. успішний запуск I2P-роутера на Yggdrasil-Only пристрої малоймовірний через можливу відсутність у ресиді або локальній базі роутера вузлів з адресою IPv6-Yggdrasil.

Початок повної сумісності

З версії 2.36.0 i2pd має кілька нових параметрів конфігурації, головний з яких meshnets.yggdrasil=true. Цей параметр не залежить від конфігурації IPv4 та IPv6. Зокрема реальні мережеві інтерфейси можуть бути відключені. У такому разі I2P-роутер працюватиме в режимі Yggdrasil-Only.

Також організований спеціальний ресид, доступний з Yggdrasil і пакет, що віддає користувачеві, в першу чергу складається з відомих роутерів з адресою IPv6-Yggdrasil. При кожному запуску I2P-роутера, працюючого як Yggdrasil-Only, проводиться перевірка наявності у локальній базі доступних вузлів на транспортному рівні, тобто. наявність інших вузлів з IPv6-Yggdrasil. Якщо з якихось причин сумісних роутерів у локальній базі не було, відбувається повторне звернення до Yggdrasil-ресиду.

При сучасному використанні Yggdrasil здебільшого через оверлейні підключення до публічних бенкетів через інтернет, робота I2P-роутера в Yggdrasil можна порівняти зі зв'язкою “Tor-over-VPN”: подібний підхід повністю приховує факт використання прихованої мережі від домашнього провайдера. У випадку з I2P є ще одна специфічна перевага: користувачу не потрібно мати виділений IP-провайдера для безпроблемних зовнішніх звернень, т.к. IPv6-Yggdrasil є глобально доступним у рамках сегменту мережі Yggdrasil (фізично з'єднаної групи учасників, у тому числі через публічні бенкети в інтернеті).

Цілісність мережі

Описане рішення є чинником фрагментації I2P. Побудова тунелів прихованої мережі – дуже ємний і навіть ювелірний процес, в рамках якого, зокрема, відбувається узгодження транспортних можливостей вузлів. Формуючи «часник» – зашифроване повідомлення групі вузлів, які мають утворити тунель, – роутер перевіряє їхні адреси на сумісність. Наприклад, вузол з єдиною адресою IPv4 не отримає інструкцію, згідно з якою необхідно встановити контакт з адресою IPv6, т.к. це свідомо неможливо.

Щоб Yggdrasil-Only роутеру побудувати тунель до вузла з адресою зі звичайного інтернету, як мінімум буде підібраний транзитний роутер, який має два інтерфейси: IPv6-Yggdrasil і, наприклад, звичайний IPv4. У свою чергу, інші Yggdrasil-Only роутери можуть виступати транзитними ланками тунелю, але тільки для сполучення з вузлами сумісними по транспорту, тобто. також мають мережевий інтерфейс Yggdrasil. Чим більше в мережі I2P кількість роутерів з одночасно включеними IPv4, IPv6 та Yggdrasil інтерфейсами, тим зв'язніша мережа.

Підключення до I2P через Yggdrasil
Підключення до I2P через Yggdrasil

Перспектива

Приклад з Yggdrasil є приватним кроком у майбутнє, а не самоціллю. Описаний досвід успішної інтеграції прихованої мережі в меш-мережа є важливим концептуальним кроком, який за потреби дозволить інтегрувати мережу I2P в інші меш-мережі. Перспектива відкривається під час розгляду самоорганізованих сегментів меш-сети, наприклад, у багатоквартирних будинках без централізованого провайдера. У локальній мережі клієнт Yggdrasil автоматично знаходить інші вузли і повідомляється з ними, сам виступаючи за потреби транзитним. При підключенні хоча б одного вузла в такому сегменті до іншого сегменту мережі (наприклад, глобального через інтернет), мережі автоматично об'єднуються. Такий підхід до організації мережі став реальнішим, т.к. тепер має місце і друга сторона звичного інтернету – прихована.


Для більш детального ознайомлення зі згаданими технологіями, рекомендую статті: про I2P та про Yggdrasil .

I2P over Yggdrasil: Anonymity in Mesh Networks

 

I2P over Yggdrasil: Anonymity in Mesh Networks

Hornbeam
6 min

I2P (Invisible Internet Protocol) is a free tool for organizing anonymous communications via the Internet. It is a peer-to-peer network in which each user is by default a potential link in the anonymous chain of other network participants. I2P traffic is encrypted and cannot be analyzed. The concept of a "watchdog" node in I2P, which is present in the Tor network, does not exist: there is no permanent node through which access to the network is carried out. User interaction with I2P on the home provider side is identified as a chaotic connection to random hosts. The number of client connections with a white IP varies on average around four thousand. In addition to the payload, this includes the exchange of service information with other network routers and transit traffic.

Prerequisites

A significant weakness of the I2P network is the need to contact one of the starting nodes via the regular Internet at the first launch. The packet with the initial network pattern in the form of several random routers and the node that gives it are called a reseed. Starting nodes are held by enthusiasts, their list is publicly available and often undergoes changes due to ordinary human circumstances. The bottleneck is the ability on the provider's side to identify most requests to the reseed through DNS request monitoring, as well as blocking the domains of the starting nodes, which will complicate the first launch for an inexperienced user, since it will require the use of a proxy or VPN.

Blocking the request to the resid on the provider side
Blocking the request to the resid on the provider side

Unlike the regular Internet, I2P users without a dedicated address have a worse quality of using the hidden network than subscribers with a white IP. This is due to the constant need for direct communication with other routers in the network. Each router publishes its address, which includes encryption keys, an IP address, and a port for receiving messages. Obviously, reaching a network node behind a NAT server is not an easy task.

Difference between a user with a dedicated IP and a user behind NAT
Difference between a user with a dedicated IP and a user behind NAT

However, routers without a dedicated address can operate: a client behind a NAT network must constantly maintain an active UDP connection, reserving a port on the provider's output server, requests to which will be transmitted to the client. This scenario is very complex, especially when it comes to initializing a connection from the outside. The mechanics of a client behind a NAT are a work of engineering thought that deserves a separate article.

Briefly about Yggdrasil

Yggdrasil Network is one of the few working mesh network protocols. The main concept is automatic routing in the internal IPv6 subnet (200::/7) and absolute scalability. Yggdrasil is a completely peer-to-peer network: there are no "master nodes" to which any global responsibility is delegated. It is an ideological continuation of the CJDNS (Hyperboria) project.

The abstract idea of ​​a mesh network puts performance, privacy and ease of use at the forefront: traffic encryption and a low threshold for new users. Yggdrasil is not an anonymity tool, since the nodes closest to the user see their real network interfaces in the local network, or their IP address when connecting to a public peer via the Internet. Mesh networks are used to organize pseudo-local networks, uniting remote computers into one IPv6 network (similar to Hamachi for playing Minecraft and other multiplayer games). It is also used to organize other intranet resources such as websites and VoIP telephony.

First attempts at integration

A small note

The I2P router publishes its addresses, including IPv6, if it is enabled in the config and is actually available. Since Yggdrasil provides the user not with a local proxy, but with a full-fledged network interface (using the TUN driver from WireGuard), until recently the I2P router published an IPv6 address from the Yggdrasil subnet. Since there were more than one or even two users with the IPv6 protocol enabled in the I2P router configuration and Yggdrasil installed, it was possible to periodically see that the I2P client (router) communicates with other Yggdrasil addresses.

However, the following disadvantages are obvious:

  1. access to the resid must ultimately be done via the regular Internet;

  2. the IPv6-Yggdrasil address published by the router is unknown and inaccessible to the vast majority of I2P users;

  3. successful launch of the I2P router on a Yggdrasil-Only device is unlikely due to the possible absence of nodes with an IPv6-Yggdrasil address in the router's resid or local database.

Beginning of full compatibility

Since version 2.36.0, i2pd has several new configuration parameters, the main one being meshnets.yggdrasil=true. This parameter does not depend on the IPv4 and IPv6 configuration. In particular, real network interfaces can be disabled. In this case, the I2P router will operate in Yggdrasil-Only mode.

A special resid is also organized, accessible from Yggdrasil and giving the user a package primarily consisting of known routers with an IPv6-Yggdrasil address. Each time an I2P router running in Yggdrasil-Only mode is started, a check is made for the presence of accessible nodes in the local database at the transport level, i.e. the presence of other nodes with IPv6-Yggdrasil. If for some reason there are no compatible routers in the local database, a repeated request to the Yggdrasil resid occurs.

With Yggdrasil used today mostly through overlay connections to public peers over the Internet, the I2P router in Yggdrasil works like a “Tor-over-VPN” setup: it completely hides the fact that you are using a hidden network from your home ISP. In the case of I2P, there is another specific advantage: the user does not need to have a dedicated IP from the ISP to seamlessly access external connections, since IPv6-Yggdrasil is globally accessible within the Yggdrasil network segment (a physically connected group of participants, including through public peers on the Internet).

Network Integrity

The solution described is not a factor in I2P fragmentation. Building hidden network tunnels is a very capacious and even delicate process, which includes coordinating the nodes' transport capabilities. When forming a "garlic" - an encrypted message to a group of nodes that must form a tunnel - the router checks their addresses for compatibility. For example, a node with a single IPv4 address will not receive an instruction that it must establish contact with an IPv6 address, since this is obviously impossible.

In order for a Yggdrasil-Only router to build a tunnel to a node with an address from the regular Internet, at least a transit router will be selected that has two interfaces: IPv6-Yggdrasil and, for example, regular IPv4. In turn, other Yggdrasil-Only routers can also act as transit links in the tunnel, but only for communication with nodes compatible in transport, i.e. also having a Yggdrasil network interface. The more routers in the I2P network with simultaneously enabled IPv4, IPv6 and Yggdrasil interfaces, the more connected the network.

Connecting to I2P via Yggdrasil
Connecting to I2P via Yggdrasil

Perspective

The Yggdrasil example is a particular step into the future, not an end in itself. The described experience of successful integration of a hidden network into a mesh network is an important conceptual step, which, if necessary, will allow integrating the I2P network into other mesh networks. The prospect opens up when considering self-organized segments of a mesh network, for example, in apartment buildings without a centralized provider. In a local network, the Yggdrasil client automatically finds other nodes and communicates with them, acting as a transit one itself if necessary. When connecting at least one node in such a segment to another network segment (for example, to a global one via the Internet), the networks are automatically united. This approach to network organization has become even more realistic, since now there is also a second side of the familiar Internet - the hidden one.


For a more detailed acquaintance with the mentioned technologies, I recommend the articles: about I2P and about Yggdrasil .

субота, 1 червня 2024 р.

 

Bastyon: First Fully Decentralized Social Network on Blockchain

Network_support8.3K · ПодписатьсяВы подписаны 4 марта13-19 minutes

Скачивайте и устанавливайте программное обеспечение Pocketnet Team только из официальных источников! Официальная страница на GitHub https://github.com/pocketnetteam

Ссылка на скачивание узла Core:- GitHub https://github.com/pocketnetteam/pocketnet.core/releases

Для Windows скачивайте и устанавливайте pocketnetcore_XXX_Win_x64_setup.exe

Для Linux скачивайте и устанавливайте pocketnetcore_XXX_linux_x64_setup.deb

Важно! Не зачисляйте Pocketcoin на кошелек узла, пока вы полностью не настроите узел.

Дождитесь полной синхронизации узла! Обязательно сделайте резервную копию кошелька!

Системные требования для запуска узла.

Для запуска узла Core у вас не должно быть установлено другое программное обеспечение узла. На компьютере может работать одновременно только один узел из за конфликта портов. Все версии узла используют одинаковые порты для работы.

Минимальные системные требования:-

OS Windows 7 или выше (64 bit) / Linux (Debian, Ubuntu, Mint, etc.) (64 bit).

2х ядерный процессор.

8 гб оперативной памяти.

10 Mbit интернет. 

150 Gb* свободного места на SSD под хранение блокчейна.

20 Gb* свободного места на системном диске*.

Рекомендуемые системные требования:-

4х ядерный процессор.

12 Gb оперативной памяти.

100 Mbit интернет.

150 Gb* свободного места на SSD под хранение блокчейна.

20 Gb* свободного места на системном диске*.

* - Объем занимаемого пространства на диске может с течением времени увеличиться из за роста размера блокчейна.

* - Свободное место на системном диске и большой объем ОЗУ нужны только на время первой синхронизации блокчейна.

Примечание:- Если у вас меньше ОЗУ чем рекомендовано, и при первом запуске узла происходит самостоятельное закрытие программы - в таком случае вам необходимо увеличить объем файла подкачки или swap файла.

Подготовка файлов блокчейна.

Возможны два варианта синхронизации узла.

  • Первый способ - когда узел самостоятельно будет скачивать с сети всю цепочку транзакций. При этом способе синхронизации узла, ваш узел самостоятельно будет проверять каждую транзакцию в сети и верифицировать ее. Этот способ наиболее правильный, но к сожалению может занимать очень много времени, особенно на слабых компьютерах. Вы можете потратить от нескольких дней, до нескольких недель.
  • Второй способ - скачать архивную точку восстановления базы блокчейна с сервера разработчиков и использовать ее для быстрого запуска своего узла.

Создание рабочего каталога узла.

На SSD диске создайте новую папку с удобным для вас названием. (Внимание, в пути к этой папке не должно содержаться названий на кириллице или других языках, кроме английского!).

Быстрая инициализации базы данных блокчейна с помощью контрольной точки.

Скачайте архив Latest.tgz с контрольной точкой восстановления базы данных блокчейна:-

https://snapshot.pocketnet.app/latest.tgz

Разархивируйте содержимое архива в рабочий каталог узла. У вас должно получиться три папки и один файл.

Подготовка файла конфигурации.

Файл ( pocketcoin.conf.example )  переименуйте в ( pocketcoin.conf ). 

Откройте файл pocketcoin.conf текстовым редактором. В любые свободные строки допишите две дополнительные команды:-

persistmempool=0

Эта команда отвечает за очищение MemPool при перезагрузке узла.

disconnectold=1

Эта команда активирует функцию защиты подключения к узлам старой версии. 

У вас должно получиться следующее содержимое файла конфигурации:-

server=1

rpcbind=127.0.0.1

rpcallowip=127.0.0.1

#rpcuser=<LOGIN>

#rpcpassword=<PASSWORD>

rpcworkqueue=10

rpcthreads=2

rpcpublicworkqueue=3000

rpcpublicthreads=30

rpcpostworkqueue=1500

rpcpostthreads=15

port=37070

rpcport=37071

publicrpcport=38081

staticrpcport=38082

restport=38083

wsport=8087

api=1

rest=0

static=0

logips=1

disablewallet=0

staking=1

persistmempool=0

disconnectold=1

Сохраните изменения в файле конфигурации.

Установка узла.

Ссылка на скачивание узла Core:- GitHub https://github.com/pocketnetteam/pocketnet.core/releases

Для установки узла в Windows запустите установку программы. Рекомендуется устанавливать программу (По пути по умолчанию). 

Для Linux запустите выполнение установочного пакета в программе установки и установите программу.

Важно! После установки программы узла и ее первого запуска, нужно указать путь до рабочего каталога узла! 

Выберите (Использовать пользовательскую директорию данных) и укажите путь до рабочего каталога узла и нажмите ОК.

Далее произойдет запуск программы. Первый запуск может быть достаточно долгим и занимать несколько часов, если вы выбрали способ синхронизации узла через контрольную точку восстановления.  В это время узел распаковывает сопутствующую базу SQL. Процесс распаковки можно отследить по увеличению объема рабочего каталога.

После у вас запустится основное окно узла и по вверх откроется слой с информацией о процессе синхронизации с сетью (Его можно свернуть нажав на полоску с отображением статуса синхронизации, внизу, слева). После окончания синхронизации узла с сетью у вас откроется основное окно узла.

Использование Node Core.

Основное окно узла имеет сверху панель навигации узла.

Чуть ниже расположены вкладки навигации кошелька.

Панель навигации узла

Включает в себя четыре вкладки (Файл, Настройки, Окно, Помощь).

  • Файл — позволяет управлять кошельками и делать их резервные копии.
  • Настройки — позволяет зашифровать кошелек*, скрыть значения баланса в основном меню и настроить параметры узла. *При зашифрованном кошельке стейкинг не работает!
  • Окно — позволяет просмотреть используемые публичные адреса для переводов, а так же информацию об узле, вызвать консоль, просмотреть сетевой трафик и подключения к другим узлам.
  • Помощь — позволяет просмотреть параметры командной строки и информацию о версии узла.

Панель с вкладками навигации кошелька.

  • Основное окно — отображает баланс на кошельке и последние транзакции и ставки.
  • Отправить — позволяет совершить перевод Pocketcoin из кошелька узла.
  • Получить — позволяет внести Pocketcoin на кошелек узла*. Внизу находится список предыдущих сгенерированных публичных адресов вашего кошелька.

*При активации кнопки (Создать новый адрес для получения), каждый раз генерируется новый адрес для внесения монет. Так же можно повторно использовать ранее созданные публичные адреса сколько угодно раз. Генерация новых адресов нужна для большей конфиденциальности переводов в сети.

  • Транзакции — позволяет увидеть список всех транзакций и полученных ставок кошелька.

Меню настройки узла.

Для настройки узла зайдите во вкладку (Настройки) - (Параметры).

Совет:- в этом меню активируйте авто запуск узла вместе с включением операционной системы. Для этого во вкладке "Главные" - активируйте пункт меню "Запускать Pocketnet Core при входе в систему". Во вкладке "Окно" активируйте пункты меню "Сворачивать в область уведомлений вместо панели задач" и "Сворачивать при закрытии".

Другие настройки не рекомендуется менять, если вы не понимаете за что они отвечают.

Управление кошельком, активация стейкинга.

Обратите внимание:- Перед тем как внести Pocketcoin на кошелек узла необходимо сделать архивную копию кошелька. Ваш узел при первом своем запуске уже создал новый кошелек. 

Для сохранения файла кошелька зайдите в пункт меню узла (Меню — Создать резервную копию кошелька) и укажите путь сохранения и имя файла.

Или можно сделать копию файла кошелька вручную, для этого выключаем узел (Закрыть узел полностью) и далее заходим в рабочую директорию узла и находим файл Wallet.dat - копируем его в надежное место.

*Копировать файл кошелька только на выключенный узел, в противном случае он может с копироваться с ошибкой.

Так же можно воспользоваться альтернативным способом сохранения кошелька через HD seed.

Для этого откройте консоль. За это отвечает пункт меню (Окно - Консоль).

Выполните команду dumpwallet my_dump_wallet где (my_dump_wallet) имя создаваемого файла.

В консоли программа вам укажет путь, куда сохранила файл дампа с вашими приватными ключами из кошелька. Вы можете сохранить весь файл со всеми ключами, или сохранить только главное семя (HD seed). По нему можно сделать полное восстановление кошелька.

Для извлечения HD seed из файла дампа, откройте файл текстовым редактором NotePad++ или аналогичной программой. Через быстрый поиск найдите строку содержащую слово HD seed.

Слева от слова HD seed будет написано ваше семя. Это самый главный ваш приватный ключ кошелька! Именно из него были сгенерированны все остальные ваши приватные ключи.

Сохраните этот приватный ключ! Способ сохранения кошелька через HD seed позволяет сохранить ваш кошелек не только в электронном виде, но и к примеру на бумаге.

Никогда, никому не передавайте файл кошелька или ваши приватные ключи! Сохраните эти данные в надежном месте!

Не рекомендуется открывать два или более кошелька одновременно! Это вызывает сбой в работе стейкинга! Если вы открыли два кошелька, вам нужно выбрать пункт меню (Файл - Закрыть все кошельки) и далее открыть только один кошелек.

Внесение Pocketcoin на кошелек узла.

Заходим в пункт (Получить) и нажимаем кнопку (Создать новый адрес для получения*). На этот адрес вносим Pocketcoin. При внесении суммы от 50 Pocketcoin активируется алгоритм (Стейкинг) через 60 минут. Это время нужно для подтверждения действия в блокчейне. *При каждом вызове окна с отображением публичного адреса, каждый раз генерируется новый публичный адрес. Ранее с генерированные адреса можно использовать повторно.

Для перевода Pocketcoin из кошелька узла в пункте (Отправить) указываем адрес перевода, сумму, и кто платит комиссию. Нажимаем кнопку отправить.

Стейкинг и ставки

После создания вашим узлом нового блока в сети, вы получаете ставку. Транзакции получения ставок отображаются со знаком (Кирка).

Чем больше у вас сумма Pocketcoin на кошельке узла, тем чаще ваш узел создает новые блоки.

Через 100 минут перейдет в (Доступно) и начнет участвовать в (Стейкинге).Это время необходимо для подтверждения создания вашим узлом нового блока. Проверить статус стейкинга можно в консоли по команде (getstakinginfo).

Мониторинг работы.

Для отслеживания работы узла в главном окне (Внизу, справа) есть информация

Pkoin – отображение баланса узла в единицах исчисления.

HD – используется кошелек (иерархический детерминистический кошелек).

Знак (Соединенных точек) — показывает количество соединений с другими узлами.

Знак (Галочка) — показывает статус синхронизации.

Дополнительную информацию о работе узла можно посмотреть во вкладке (Окно).

Проверить статус Стейкинга

Можно выполнить введя в консоли команду ( getstakinginfo ).

Завершение работы узла.

Для корректного завершения работы, перед выключением компьютера закройте программу узла вручную. Если в настройках стоит галочка (Сворачивать в трей при закрытии), в меню системных уведомлений нажмите правой клавишей мышки на знак узла и в появившимся окне выберите пункт (Выход).

Диагностика неисправностей.

Если узел перестал работать, попробуйте перезагрузить программу и компьютер.

Проверьте интернет соединение и соединение с пирами.

Зайдите в рабочий каталог узла и найдите текстовый файл Debug.log, просмотрите его конец на наличие ошибок. 

В консоли введите команду getbestblockhash , в ответ вы получите хеш сумму последнего блока. Зайдите на сайт https://bastyon.com/blockexplorer/ и проверьте, совпадает ли ваша хеш сумма с сетью. Если совпадения нет, это обозначает что ваш узел ушел в (Форк). В этом случае вам необходимо заменить базу блокчейна.

Замена базы блокчейна.

Выключите узел.

Скачайте свежий архив с контрольной точкой восстановления базы данных блокчейна https://snapshot.pocketnet.app/latest.tgz

Зайдите в рабочий каталог узла и удалите там все папки и файлы, кроме файла кошелька (Wallet.dat) и файла конфигурации (Pocketcoin.conf).

Распакуйте содержимое архива Latest.tgz в рабочий каталог узла.

Запустите узел и дождитесь окончания синхронизации.

Восстановление кошелька.

Если у вас возникли проблемы с узлом, или ваша операционная система вышла из строя или поломался SSD диск - вам может потребоваться восстановление кошелька. 

Для восстановления кошелька через файл Wallet.dat:- Выключите узел. Откройте рабочий каталог узла и положите в его корень файл кошелька из вашего архива. Запустите узел. Если у вас в рабочем каталоге узла уже есть файл Wallet.dat - рекомендуется его не удалять, а переименовать к примеру в Wallet.dat.old. Это поможет сохранить ваш предыдущий кошелек в случае совершения вами какой либо ошибки.

Для восстановления кошелька через семя HD seed:- создайте новый пустой кошелек. Для этого выключите узел, переименуйте ваш старый кошелек в Wallet.dat.old. Запустите узел. Если узел не видит в корневой директории файла кошелька, он самостоятельно создаст новый кошелек.

В узле откройте пункт меню (Окно - Консоль) и введите команду:-

sethdseed true ......................................... (вместо точек ваш ключ HD seed).

Ответ консоли должен быть Null.

Далее вводим команду 

rescanblockchain

И ждем завершения процесса.

Если вы не можете самостоятельно исправить работу узла, обратитесь за помощью в сообщество. Вы можете написать о вашей проблеме в чат хозяев узлов или написать пост с тегом Bastyon/Pocketnet.

Обновление узла

При выходе обновлений, узел вас уведомит всплывающим уведомлением.

В уведомлении нажмите (Обновить) и откроется окно браузера на сайте GitHub.

В нем будет информация о новом релизе и предложены установочные пакеты для разных операционных систем.

Перед запуском установочного пакета с обновлением необходимо выключить узел.

После обновления запускаем узел самостоятельно.

Публичные узлы и новые порты для версий узлов 0.22.х

Публичные узлы самые полезные для сети, они не только хранят полную копию блокчейна и верифицируют транзакции, но и позволяют с себя брать информацию для синхронизации новых узлов в сети, а так же позволяют обычным пользователям Bastyon подключаться к ним для работы в сети.

Публичный узел, это обычный узел PocketNet Core, но работающий на статическом IPv4 с пробросом портов.

Необходимые порты для работы 8087, 37070, 38081, 38881, 8887.

Обратите внимание на новые порты 38881 и 8887 которые в свою очередь представляют HTTPS и WSS протоколы с шифрованием данных. Если у вас уже есть публичный узел, вам необходимо два новых порта открыть!

Бонусная программа от разработчиков для публичных узлов. Если вы хозяин такого узла, вы можете участвовать в программе. Для этого напишите электронное письмо на " bonus@pocketnet.app ". В заголовке письма укажите Node bonus, а в поле письма ваш IP и публичный адрес для проведения платежей. Сейчас бонус составляет 30 монет в месяц*.

*Оплата в будущем может измениться.

Для запуска публичного узла вам потребуется статический адрес IPv4. Как правило это отдельная услуга у провайдера, которую можно подключить.

Вам будет необходимо после получения статического IP пробросить указанные порты в роутере. Инструкцию как это сделать можно найти в интернете по запросу "Модель вашего роутера + проброс портов".

Далее необходимо задать разрешающие правила для указанных портов в "Брадмаузере Windows" или "Межсетевом экране Linux".

Проверку правильности проброса портов можно проверить к примеру на сайте 2ip.io в разделе "Check port". При проверке узел должен быть включенным на компьютере!

По всем вопросам всегда можете обратиться ко мне в личном чате.

  # **Getting Started with IPFS on Windows: A Simple Guide** ## Introduction In an era where decentralization is becoming increasingly impor...