Pull to refresh
22
0
Distributed Lab @DistributedLab

Blockchain Experts

Send message
Как отправить транзакцию с нулевой комиссией другу-майнеру – действительно интересный вопрос. Как обычная транзакция по сети она вряд ли пройдет, поскольку по умолнанию конфигурация узлов имеет параметр minRelayFee не равный нулю. Это означает, что транзакция должна обязательно иметь комиссию больше некоторого порогового значения, чтобы узлы могли отреагировать на нее и передать дальше. Поэтому придется хитрить, чтобы доставить «заговоренную» транзакцию другу.

Один из вариантов состоит в том, чтобы насильно соединить узел пользователя с узлом майнера, вручную вписав сетевой адрес в конфиг пользователя, а на узле майнера установить minRelayFee равным нулю. Но есть проблема: узел друга должен отличать заранее «заговоренные» транзакции от транзакций других пользователей.

Поэтому другой вариант решения – это использование API собственного производства в кошельке пользователя и узле друга-майнера.
Это такое себе движущееся окно из 20-ти адресов. Используется для поиска актуальных адресов при восстановлении кошелька по мнемонической фразе и алгоритмам HD Wallet. Дело в том, что алгоритм рассчитывает новые адреса по веткам не до бесконечности, а до тех пор пока не встретит N неиспользованных (монет нет и не было раньше) подряд идущих. Чтобы избавиться от неопределенности вводится предположение, что мало вероятно после 20 неиспользованных адресов подряд снова встретятся использованные. В итоге даже в функцию расчета нового адреса вставили проверку. Похожее окно используется на каждом уровне иерархии, чтобы алгоритм поиска актуальных адресов заканчивал свою работу и возвращал результат, а не продолжал до бесконечности.

Information

Rating
Does not participate
Location
Украина
Registered
Activity