Содержание

Синхронизация кошельков с Биткоин сетью / Блог компании Distributed Lab / Хабр

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

По материалу этой статьи записана одна из лекций онлайн-курса по blockchain “Синхронизация кошельков с Биткоин сетью”.

Базовые функции кошелька



Начнем с базовой функциональности цифрового кошелька:

  • резервное копирование личных ключей;
  • прием платежей;
  • отображение баланса;
  • отображение истории транзакций;
  • отправка платежей.

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

Наиболее важное из того, что пользователь цифрового кошелька должен достоверно знать при приеме и отправке платежей, — это статус своих транзакций. Очевидно, что сделка считается незавершенной, если транзакция была отправлена, но не получила полное подтверждение. Как следствие, получатель не может принять платеж, чтобы, например, отдать товар или оказать услугу.

Сложности работы в распределенной сети



Работа с распределенной сетью является достаточно сложной темой, в которой обычно сталкиваются со следующими проблемами. Одна из них состоит в способе проверки полученных данных из распределенной сети, а вторая заключается в оптимизации хранения данных этих данных. Эти требования немного конфликтуют между собой, поскольку больший объем хранимых данных позволяет произвести более полную проверку новых транзакций и блоков. Идеального решения этих проблем нет, невозможно обрабатывать транзакции и достоверно и с минимальными ресурсами, поэтому приходится искать некоторый баланс, компромисс простоты и безопасности.

Еще одна проблема заключается в следующем. Чтобы получить историю транзакций по определенному адресу на полном узле сети, вам придется пройтись по всему блокчейну (от genesis до last known), что достаточно долго, поскольку это большой объем данных, а грубый перебор это мало эффективный подход. Поэтому можно использовать определенные подходы с целью оптимизации запросов. Для этого применяются специальные надстройки над обычным узлом сети, которые помогают индексировать блокчейн и кэшировать некоторые данные для ускорения поиска по популярным метрикам. По такому принципу работает любой blockchain explorer, например blockchain.info, который достаточно быстро возвращает данные практически о любом адресе, о любой транзакции и т. д.

Итак, существует несколько принципиально разных подходов к осуществлению взаимодействия и синхронизации цифрового кошелька с распределенной сетью. Давайте их рассмотрим.

Подходы синхронизации кошелька с платежной сетью



Есть три основных подхода. Первый предполагает, что кошелек сам является полным узлом сети Биткоин. Во втором подходе используется так называемый доверенный узел. Фактически это чужой узел сети, но пользователь кошелька ему доверяет. А третий подход предполагает прямое взаимодействие с остальными узлами сети, но в облегченном варианте, с использованием методики Simplified Payment Verification (SPV). Эта методика позволяет с достаточно высокой степенью надежности проверить подтвержденность транзакций, но не прибегать к запуску полного узла сети. Давайте чуть подробнее остановимся на каждом из этих подходов синхронизации.

Работа с полным узлом сети

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

Недостатком этого подхода является необходимость выделить большой объем дискового пространства для хранения полного блокчейна, содержать узел сети в режиме бесперебойной работы и своевременного обновления ПО.

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

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

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

Работа с доверенным узлом сети

Отличие этого подхода от предыдущего заключается в разделении логики кошелька и логики проверки транзакций. Тут есть так называемый доверенный узел сети Биткоин. Грубо говоря это самый обычный полный узел сети Биткоин, которому пользователь ему доверяет проверку своих транзакций. Например, это может быть узел сети, который поддерживает его друг, и пользователь может доверить ему проверку своих транзакций.

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

Какие же преимущества и недостатки этого подхода? Как и в предыдущем случае, хоть и косвенно, но можно влиять на проверку транзакций в сети Биткоин, потому что у пользователя остается доверенный узел сети. Преимущество состоит в том, что он освобождается от необходимости хранить полную копию блокчейна на своем устройстве. Тем не менее зависимость от доверенного узла является недостатком, ведь в случае его отказа пользователь не всегда может переключиться на другой доверенный узел. Поскольку проверка транзакций происходит на удаленном сервере, нужно убедиться в надежности канала передачи данных между кошельком и сервером, на котором происходит проверка. При таком подходе появляются угрозы таких атак как “Man in the middle”.

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

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

Такой способ используют преимущественно мобильные кошельки, потому что он позволяет и верифицировать транзакции, и упростить работу мобильного приложения. Примерами таких мобильных кошельков для Биткоина являются Mycelium и Coinomi. Компания Distributed Lab также разработала и поддерживает кошелек под названием Bitxfy, где применен данный подход.

Работа с SPV-узлом сети

Третий распространенный подход к синхронизации цифрового кошелька с Биткоин сетью — это облегченный узел сети. Речь идет о Simplified Payment Verification (SPV). В этом подходе может отсутствовать необходимость запуска своих полных узлов или выбора доверенных. Предполагается, что цифровой кошелек напрямую общается с другими узлами сети: фактически выбирает несколько десятков чужих полных узлов и поддерживает с ними соединение. Отличие состоит в том, что облегченный узел общается с другими узлами на равных, обмениваясь с ними р2р сообщениями, но при этом не хранит всю историю транзакций. Здесь для проверки входящих транзакций применяется методика SPV. Фактически облегченный узел проводит только часть наиболее важных проверок из тех, что проводит полный узел сети.

Как происходит работа в этом случае? Вместо того, чтобы получать блоки, как это делает полный узел, SPV узел получает только заголовки блоков, которые имеют гораздо меньший размер (80 байт). В заголовке содержатся необходимые данные для проверки факта подтверждения конкретной транзакции в этом блоке. Если говорить более конкретно, то в заголовке блока есть поле Merkle Root, где записано хеш-значение от всех транзакций в блоке, рассчитанное по схеме Merkle Tree.

Схема Merkle Tree позволяет проверить, входит ли хеш-значение конкретной транзакции в Merkle Root, не имея при этом всех остальных транзакций блока. Таким образом, имея транзакцию, заголовок блока и Merkle Branch для этой транзакции (можно запросить у полного узла), цифровой кошелек может убедиться, что транзакция была действительно подтверждена в конкретном блоке.

Почему это нельзя считать полноценной верификацией транзакций? Конечно, пользователь получает независимость от конкретных узлов сети и может напрямую общаться с распределенной сетью. Для этого ему не нужно хранить весь блокчейн. Но недостаток состоит в том, что облегченный клиент самостоятельно не проверяет транзакцию полностью, потому что у вас нет всех необходимых данных для этого (например, непотраченные монеты). Он проверяет лишь факт подтверждения транзакции валидаторами — т. е. убеждается, что эту транзакцию полностью проверили другие узлы и владельцы большинства вычислительной мощности сети (майнеры). В этом случае надежность снова сводится к доверию, что большинство вычислительной мощности используются для честной работы. Иначе говоря, вы не сами проверяете транзакцию, а доверяете это большинству.

Особенностью использования цифровых кошельков, которые реализуют подход SPV узла, является необходимость поддержания сетевого соединения с большим количеством независимых полных узлов сети. Это нужно, чтобы минимизировать вероятность того, что узел будет подключаться и получать данные только от узлов злоумышленника. Тогда злоумышленник может навязать пользователю альтернативное (поддельное) состояние истории транзакций. Как следствие жертва может принять платеж из той транзакции, которая по версии злоумышленника подтверждена, хотя на самом деле нет. Чтобы увеличить шансы получать актуальные данные о реальном состоянии сети, пользователю следует максимально увеличить количество независимых узлов для общения. Чем их больше, тем меньше вероятность, что они все в сговоре против пользователя.

Как вы уже поняли, SPV узлы требовательны к стабильной работе сетевого соединения, тем не менее часто применяются даже в мобильных приложениях. Этот подход синхронизации с платежной сетью достаточно широко распространен и используется в ряде популярных Биткоин кошельков. Среди них можно выделить Bitcoin Wallet, Electrum, а также Bread Wallet.

Часто задаваемые вопросы


— Где можно найти полные узлы, которым можно доверять?

Достаточно сложно ответить, каким узлам можно доверять. Это вопрос личного предпочтения. Есть сервисы, которые предоставляют доверенную информацию, такие как Blockchain.info, — редко кто им доверяет особенно если речь идет о крупных суммах. Нужно быть очень осторожным в выборе доверенного узла, поскольку он является посредников между пользователем и платежной сетью. Однажды Blockchain.info вышел из строя на двое суток из-за проблем с DNS провайдером, Кошельки, которые использовали Blockchain.info в качестве доверенного узла, не могли синхронизироваться с Биткоин сетью и хоть как-то работать.

— Какие гарантии дает команда кошелька и какова ее ответственность?

Этот вопрос имеет больше юридический характер, чем технический. У любого ПО, которое распространяется официально, есть “Terms of Use”, где прописано, что вы можете предъявить разработчикам в случае, если возникли определенные проблемы в их ПО. “Terms of Use” отличаются в разных приложениях. Как и всегда, пользователь отвечает на вопрос, доверяет он разработчикам или нет, перед тем как начать использовать их продукт.

— Кто решает, доверенный ли узел?

Только пользователь, который владеет кошельком. Ценность доверенных узлов состоит в значительном упрощении работы кошелька. Вы выбираете определенный узел, которому вы доверяете проверку транзакций. Всю нагрузку по выполнению операций проверки он берет на себя, а вы доверяете данным о состоянии сети, которые он вам передает. Это вопрос личного доверия и только.

— Сколько может быть доверенных узлов?

Вы можете выбрать любое количество доверенных узлов, чтобы минимизировать риск потери доступа к сети. Например, три узла. Если возникнут проблемы с доступом к первому, то вы подключаетесь ко второму и продолжаете с ним работать точно по такому же принципу.

— Что произойдет с монетами, если сервера, на которых они хранятся, будут полностью или частично уничтожены землетрясением?

Здесь нужно сказать не о монетах, а о хранении ключей, которые используются для доступа к этим монетам. Рассмотрим два варианта одной ситуации. Если уничтожен сервер, который обеспечивал доступ к сети Биткоин. То это на вас никак не повлияет. Вы временно потеряете доступ к распределенной базе данных, но у вас остануться ключи, которые позволят вам потратить эти монеты. Если же уничтожен сервер, на котором хранились ваши ключи, при этом у вас нет резервной копии этих ключей, то вы не сможете получить доступ к своим монетам.

— Безопасно ли поставить кошелек, положить на него монеты, записать seed фразу на бумагу и удалить его?

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

— Можно ли поставить некоторую надстройку над блокчейном у себя локально, чтобы иметь возможность анализировать данные в блокчейне?

Можно добавить любое ПО, которое будет анализировать блокчейн. Это может быть ПО, написанное самим пользователем, а может существовать готовое решение. Все зависит от ваших целей. Если вы хотите оптимизировать запросы по поиску определенных транзакций, привязанных к определенным адресам, как это делает blockchain explorer, вы можете применить ПО, которое будет индексировать блокчейн и кэшировать определенные данные. Примером такого ПО является BitCore (поддерживается компанией BitPay). BitCore имеет открытый исходный код и вы можете его достаточно просто использовать вместе со своим полным узлом.

Как подключиться к Bitcoin Core по сети? — Хабр Q&A

Здравствуйте!
Пытаюсь подключиться к Bitcoin Core по сети с использованием python-bitcoin-utils
https://github.com/karask/python-bitcoin-utils
Bitcoin Core стоит на Ubuntu 18.04.4 LTS и имеет адрес 10.20.1.156/24
Удаленная машина 10.20.1.210/24
bitcoin.conf выглядит так:

##
## bitcoin.conf configuration file. Lines beginning with # are comments.
##

# Network-related settings:

# Run on the test network instead of the real bitcoin network.
#testnet=0

# Run a regression test network
#regtest=0

# Connect via a SOCKS5 proxy
#proxy=127. 0.0.1:9050

# Bind to given address and always listen on it. Use [host]:port notation for IPv6
#bind=<addr>

# Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6
#whitebind=<addr>

##############################################################
##            Quick Primer on addnode vs connect            ##
##  Let's say for instance you use addnode=4.2.2.4          ##
##  addnode will connect you to and tell you about the      ##
##    nodes connected to 4.2.2.4.  In addition it will tell ##
##    the other nodes connected to it that you exist so     ##
##    they can connect to you.                              ##
##  connect will not do the above when you 'connect' to it. ##
##    It will *only* connect you to 4.2.2.4 and no one else.##
##                                                          ##
##  So if you're behind a firewall, or have other problems  ##
##  finding nodes, add some using 'addnode'.                ##
##                                                          ##
##  If you want to stay private, use 'connect' to only      ##
##  connect to "trusted" nodes.                              ##
##                                                          ##
##  If you run multiple nodes on a LAN, there's no need for ##
##  all of them to open lots of connections.  Instead       ##
##  'connect' them all to one node that is port forwarded   ##
##  and has lots of connections.                            ##
##       Thanks goes to [Noodle] on Freenode.               ##
##############################################################

# Use as many addnode= settings as you like to connect to specific peers
#addnode=69.164.218.197
#addnode=10.0.0.2:8333

# Alternatively use as many connect= settings as you like to connect ONLY to specific peers
#connect=69.164.218.197
#connect=10.0.0.1:8333

# Listening mode, enabled by default except when 'connect' is being used

#listen=1

# Maximum number of inbound+outbound connections.
maxconnections=10

#
# JSON-RPC options (for controlling a running Bitcoin/bitcoind process)
#

rest=1

daemon=1

txindex=1

# tells Bitcoin-Qt and bitcoind to accept JSON-RPC commands
server=1


# Bind to given address to listen for JSON-RPC connections.  Use [host]:port notation for IPv6.
# This option can be specified multiple times (default: bind to all interfaces)
#rpcbind=<addr>
###rpcbind=10.20.1.156
###rpcbind=localhost
rpcbind=127.0.0.1
###rpcbind=0.0.0.0

# If no rpcpassword is set, rpc cookie auth is sought. The default `-rpccookiefile` name
# is .cookie and found in the `-datadir` being used for bitcoind. This option is typically used
# when the server and client are run as the same user.
#

# If not, you must set rpcuser and rpcpassword to secure the JSON-RPC api. The first
# method(DEPRECATED) is to set this pair for the server and client:
rpcuser=rpcuser
rpcpassword=rpcpassword
#
# The second method `rpcauth` can be added to server startup argument. It is set at intialization time
# using the output from the script in share/rpcuser/rpcuser.py after providing a username:
#
# ./share/rpcuser/rpcuser.py alice
# String to be appended to bitcoin.conf:
# rpcauth=alice:f7efda5c189b999524f151318c0c86$d5b51b3beffbc02b724e5d095828e0bc8b2456e9ac8757ae3211a5d9b16a22ae
# Your password:
# DONT_USE_THIS_YOU_WILL_GET_ROBBED_8ak1gI25KFTvjovL3gAM967mies3E=
#
# On client-side, you add the normal user/password pair to send commands:
#rpcuser=alice
#rpcpassword=DONT_USE_THIS_YOU_WILL_GET_ROBBED_8ak1gI25KFTvjovL3gAM967mies3E=
#
# You can even add multiple entries of these to the server conf file, and client can use any of them:
# rpcauth=bob:b2dd077cb54591a2f3139e69a897ac$4e71f08d48b4347cf8eff3815c0e25ae2e9a4340474079f55705f40574f4ec99

# How many seconds bitcoin will wait for a complete RPC HTTP request. 
# after the HTTP connection is established.
rpcclienttimeout=120

# By default, only RPC connections from localhost are allowed.
# Specify as many rpcallowip= settings as you like to allow connections from other hosts,
# either as a single IPv4/IPv6 or with a subnet specification.

###rpcallowip=*

# NOTE: opening up the RPC port to hosts outside your local trusted network is NOT RECOMMENDED,
# because the rpcpassword is transmitted over the network unencrypted.

# server=1 tells Bitcoin-Qt to accept JSON-RPC commands.
# it is also read by bitcoind to determine if RPC should be enabled
###rpcallowip=10.20.1.210/255.255.255.0
###rpcallowip=10.20.1.210/255.0.0.0
#rpcallowip=1.2.3.4/24
#rpcallowip=2001:db8:85a3:0:0:8a2e:370:7334/96

rpcallowip=10.20.1.210/24
###rpcallowip=127.0.0.1
###rpcallowip-localhost

# Listen for RPC connections on this TCP port:
rpcport=8332

# You can use Bitcoin or bitcoind to send commands to Bitcoin/bitcoind
# running on another host using this option:
#rpcconnect=127. 0.0.1

# Create transactions that have enough fees so they are likely to begin confirmation within n blocks (default: 6).
# This setting is over-ridden by the -paytxfee option.
#txconfirmtarget=n

# Miscellaneous options

# Pre-generate this many public/private key pairs, so wallet backups will be valid for
# both prior transactions and several dozen future transactions.
#keypool=100

# Pay an optional transaction fee every time you send bitcoins.  Transactions with fees
# are more likely than free transactions to be included in generated blocks, so may
# be validated sooner.
#paytxfee=0.00

# Enable pruning to reduce storage requirements by deleting old blocks.
# This mode is incompatible with -txindex and -rescan.
# 0 = default (no pruning).
# 1 = allows manual pruning via RPC.
# >=550 = target to stay under in MiB.
#prune=550

# User interface options

# Start Bitcoin minimized
#min=1

# Minimize to the system tray
##minimizetotray=1

Локально получается вызвать процедуры, а вот удаленно нет.

ConnectionRefusedError: [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение

Подскажите пожалуйста, чем может быть дело?

Как установить, настроить ноду Lightning Network и начать зарабатывать на этом

Сеть Lightning Network (LN) на данный момент – это самое перспективное решение для масштабирования в сети биткоина. Сторонники LN говорят, что скорость сети биткоинов может вырасти с нынешних семи транзакций в секунду (TPS) до нескольких миллионов.

Это астрономическая масштабируемость в наше время, и, возможно, криптоиндустрии потребуются ещё десятилетия, чтобы достичь такой пропускной способности. Однако создать и настроить собственную ноду (узел) Lightning Network каждый может уже сегодня.

Ранее мы представляли вашему вниманию подробное объяснение того, как работает сеть Lightning Network, а в этой статье вы увидите пошаговое руководство по установке и развертыванию собственной ноды Lightning Network.

Для чего нужна нода Lightning Network

Всякий раз, когда увеличивается количество желающих совершить транзакцию в сети биткоина, растёт и комиссия сети, в то время как скорость обработки платежей остаётся очень низкой. Именно так происходило в самый разгар рыночной активности в декабре 2017 года, когда транзакция в блокчейне биткоина могла занять несколько дней или стоить $50, если вы желали отправить свои средства быстрее. Такое положение дел становится серьёзным препятствием для массового признания главной криптовалюты.

Вот для чего вам стоит создать и настроить собственный узел Lightning Network:

  • если вы реально заинтересованы в успехе биткоина, то создание ноды будет способствовать большей децентрализации блокчейна биткоина и сети LN;
  • вы сможете отправлять и получать микроплатежи (или даже крупные платежи) практически мгновенно и при очень низкой комиссии;
  • вы сможете получать небольшой доход от транзакций, которые проходят через ваши каналы оплаты.

Как установить и настроить ноду Lightning Network

Есть несколько реализаций Lightning Network, однако это руководство будет охватывать только Eclair как наиболее удобную и понятную для пользователя.

Скачать и настроить блокчейн биткоина: Прежде всего, вам следует скачать Bitcoin Core (это кошелёк биткоина и его блокчейн) и запустить его.

Блокчейн биткоина занимает более 200 ГБ, и у вас должно быть достаточно места на жёстком диске для его размещения. Пока загружается блокчейн, можно отредактировать файла конфигурации, внеся в него требуемые настройки.

Откройте файл bitcoin.conf в приложении – выберите Settings →Options → Open Configuration File. (Альтернатива – переход в вашей файловой системе по пути C: \ Users \ [user] \ AppData \ Roaming \ Bitcoin).

Если вы не можете найти файл в папке Bitcoin, то его нужно его создать. Для этого создайте в редакторе «Блокнот» файл .txt и вставьте следующие строки:

testnet=0

server=1

rpcuser=username [имя пользователя]

rpcpassword=password [пароль]

txindex=1

rpcport=8332

zmqpubrawblock=tcp://127. 0.0.1:29000

zmqpubrawtx=tcp://127.0.0.1:29000

addresstype=p2sh-segwit

deprecatedrpc=signrawtransaction

Замените «имя пользователя» и «пароль» собственными данными. Закройте текстовый файл, сохранив его как bitcoin.conf. Убедитесь, что в итоге вы получили файл .conf, а не .txt. Далее остаётся дождаться синхронизации всего блокчейна. Это может занять несколько часов или дней в зависимости от скорости вашего интернет-соединения. Как только синхронизация будет завершена, следует перезапустить программу.

Скачать и настроить Eclair. Вы должны скачать реализацию ноды LN под названием Eclair. Далее откройте файл clair.conf в директории C: \ Users \ [user] \ eclair. Обязательно нужно нажать «Просмотр скрытых файлов» в настройках «Проводника» вашего компьютера на вкладке «Просмотр». Введите в файле clair.conf следующие строки:

eclair.chain=mainnet

eclair.node-alias=”node-alias”

eclair.bitcoind.rpcport=8332

eclair. bitcoind.rpcuser=username [имя пользователя]

eclair.bitcoind.rpcpassword=password [пароль]

eclair.bitcoind.zmq=”tcp://127.0.0.1:29000″

eclair.server.public-ips = [“xxx.xxx.xx.x”]

eclair.node-color=”ffffff”

Это подключит Eclair к основной сети Bitcoin Core. «Имя пользователя» и «пароль» точно должны соответствовать тому, что было введено в файле bitcoin.conf.

Eclair и Bitcoin Core должны работать одновременно. Если всё работает нормально, то нода Eclair должна открываться в виде интерфейса, а не сообщения об ошибке. В нижнем ряду вы увидите ваш личный публичный ключ LN. В правом нижнем углу вы можете подтвердить своё подключение к сети.

Открытие канала

Наконец, пришло время открыть каналы и начать отправку / получение транзакций Lightning Network. Вы можете воспользоваться специальным поисковиком для LN – сайтом 1ml.com, который позволяет найти требуемые ноды, изучить важную статистику и даже предоставить снимок сети.

Когда вы найдёте ноду, с которой хотите быть связаны, нажмите Channels →Open Channel, затем скопируйте адрес ноды и вставьте его в Target Node URI. Ваша Capacity (пропускная способность) не может превышать доступный баланс вашего биткоин-кошелька.

Fee rate – это комиссия вашей ноды, которую устанавливаете вы сами, чтобы разрешить тот или иной платёж через ваш узел. Комиссия должна быть справедливой. Не ставьте слишком высокую комиссию, иначе никто не захочет совершать платежи через ваш узел. Вы также можете использовать стандартную ставку, которую рекомендует ПО Eclair.

Если вы хотите, чтобы другие пользователи сети нашли ваш узел, нужно поставить галочку в строке Public Channel.

Нажмите Connect, чтобы создать свой первый платёжный канал. В разделе State будет указано WAITING_FOR_FUNDING _CONFIRMED – до тех пор, пока транзакция не будет полностью подтверждена в блокчейне; после этого надпись переключится на NORMAL.

Ваш узел может отправлять и получать платежи только в Lightning Network. Поэтому вам нужно отправить платёж себе с другого кошелька Lightning Network или попросить друга сделать платёж из его кошелька, чтобы вы могли открыть канал приёма. Когда вы проделаете это, вы сможете легко отправлять и получать платежи Lightning Network.

Хотя система LN позволяет вам получать мгновенные платежи с небольшими комиссиями, она всё ещё находится на стадии бета-тестирования (сеть разработана не полностью). Не храните свои инвестиционные средства в кошельках Lightning Network; а главное – не отправляйте крупные платежи в этой сети. Всегда существует небольшая вероятность того, что вы можете потерять свои средства. В любом случае, следует проявлять осторожность при обращении со своими денежными средствами.

Если вы хотите отправить биткоины на сумму более $200, то вам лучше использовать обычную сеть биткоина. Сеть Lightning Network ещё не вошла полностью в нашу жизнь, а всё вышесказанное можно рассматривать как призыв приобщиться к эксперименту и получению некоторого опыта платежей в этой новой сети.

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

Процесс настройки Lightning Network кажется немного трудным, но это дело в итоге может оказаться весьма полезным для вас, учитывая низкие комиссии и мгновенные транзакции этой биткоин-сети.

Как установить полный узел биткоина на Linux — подробное руководство

Блогер StopAndDecrypt рассказывает, как установить Kubuntu 18.04 вместе с полной нодой (полным узлом) биткоина без какого-либо опыта работы с Linux. Оригинал поста опубликован на Hackernoon. Предлагаем вам перевод.

Предисловие

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

Никогда не пользовались Linux? Не знаете, что значит «обрезать ноду»? Отлично. Эта статья для вас. Я хочу, чтобы вы переключились на Linux, а биткоин мотивировал бы вас это сделать. Это и руководство по Linux для чайников, и руководство по настройке ноды биткоина. Если вы не хотите читать всю эту кучу текста, можете просто скопировать команды в самом низу.

Я предполагаю, что вы знаете, как загрузить и смонтировать ISO-образ. Я не буду вносить никаких изменений в конфигурацию установки по умолчанию, за исключением шифрования всего диска, а также импорта настроек рабочего стола и темы. Я не буду устанавливать что-либо ещё, кроме ноды биткоина.

Часть 1. Настройка

Пропустите этот раздел полностью, если вы уже на Linux.

Загрузите ISO Kubuntu

Kubuntu — это Ubuntu, только покрасивее. Самый последний LTS — 18.04.

Установите ISO на USB или CD

Следуйте официальному руководству Ubuntu для Windows или macOS.

Установка ОС

Настройте имя компьютера, пользователя и пароль. Моим именем в этой инструкции будет satoshi, а именем компьютера — nakamoto. После установки и входа в систему ваш рабочий стол должен выглядеть так:

Освойтесь, перейдите в приложения и запустите эмулятор терминала (Konsole). Большую часть времени мы будем работать в этом единственном окне, но сначала откроем диспетчер файлов (Dolphin), а также импортируем настройки темы и рабочего стола.

Прежде чем мы войдём в терминал, давайте разберёмся с тем, что мы уже видим. В верхней части окна терминала отображается Konsole. Это просто название программного обеспечения, характерное для данной среды рабочего стола (другие названия — Terminal, Command Line и др.). Как Satoshi (имя пользователя) Nakamoto (имя компьютера) вы будете отображаться в любой сети, к которой cможете подключиться.

Между «:» и «$» вы увидите «~». Это аббревиатура для вашей домашней директории /home/ <username>. / home /<username> похожа на «Мои документы» в Windows.

[email protected]:~$

[email protected]:/home/satoshi$

Часть 2. Подготовка

Скопируйте команды из раздела или из конца статьи, если вы уже на Linux.

В первую очередь мы проверим наличие обновлений в терминале. Введите следующую команду и нажмите Enter (по пути вам будет предложено ввести «y» для «yes» и ваш пароль):

[email protected]: ~ $ sudo apt-get update

sudo иногда называют суперпользователем (superuser do). Команда похожа на «запуск от имени администратора» в Windows. Она необходима потому, что следующие команды будут требовать уровня доступа суперпользователя.

apt-get позволяет вам взаимодействовать с доступными библиотеками программного обеспечения, чтобы вы могли скачать ПО прямо с терминала.

update — одна из нескольких команд, которые должны следовать за apt-get. Она проверяет наличие обновлений для любых установленных вами пакетов.

Затем мы установим Git. Это широко используемое программное обеспечение с открытым кодом, предназначенное для работы с другими проектами с открытым (и закрытым) кодом. Мы будем использовать Git для доступа к репозиторию биткоина и для загрузки его кода.

[email protected]: ~$ sudo apt-get install git

Команда install должно быть понятной; это как update, но для первой установки конкретного пакета. Для этого требуется имя пакета.

git — это имя пакета Git, он признаётся одним из источников (source), к которым обращается команда apt-get. После установки также будет работать как команда.

Теперь мы создадим папку в нашей домашней директории и перейдём к этой директории, чтобы скопировать нужные нам файлы. Мы можем копировать это в любую нужную нам папку (просто я выбрал именно такой путь). Сначала введите следующую строку:

[email protected]: ~$ mkdir p bitcoin-source && cd bitcoin-source

Это должно выглядеть так:

[email protected]:/home/satoshi/bitcoin-source$

mkdir создаёт директорию. Это похоже на щелчок правой кнопкой мыши на рабочем столе и выбор «создать > папку».

-p — это флаг. Флаги являются параметрами командной строки и начинаются с . Каждая команда (например, mkdir) имеет свой собственный набор параметров, поэтому -p может сделать что-то ещё для другой команды. В этом случае -p  переопределяет некоторые ошибки, которые могут возникнуть при попытке создать директорию. Если вы хотите создать директорию /test1/abc123 /haha без -p, система подумает, что вы просто хотите создать /haha, и вы получите сообщение об ошибке, которая говорит, что /test1 и /abc123 не существуют. С -p эта ошибка игнорируется, и создаются обе родительские директории, которые «не существуют».

bitcoin-source — это лишь имя директории/папки, которую мы собираемся создать.

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

cd изменит текущую директорию на ту, которую вы укажете. В этом случае она изменится на директорию /bitcoin-source, которую мы только что создали.

Затем введите:

$ git clone https://github.com/bitcoin/bitcoin.git

git clone скопирует репозиторий биткоина из Github.com в директорию, в которой вы находились, когда вводили команду. Поскольку вы были в ~/bitcoin-source, команда создаст каталог ~/bitcoin-source/bitcoin и разместит там все необходимые файлы.

Вы можете проверить установку файлов с помощью команды ls или перейти к этой директории в диспетчере файлов.

$ ls bitcoin

ls выведет все открытые папки в директории, в которой вы находитесь.

ls bitcoin будет искать папку /bitcoin в директории (в которой вы находитесь), а затем выводить все открытые папки в этой директории.

ls -a выведет все папки, включая скрытые папки (если они существуют). Скрытые папки начинаются с . и выглядят так: /home/satoshi/.abc123

Перейдите в эту папку. Вы увидите, как создаются файлы, когда мы запускаем другие команды.

Теперь нам нужно установить несколько библиотек вместе с Berkeley Database. В этом руководстве я разделил их на группы согласно документации по сборке в Github для Ubuntu, поскольку я пытался объединить их раньше и получил ошибки. Библиотеки:

$ sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3

$ sudo apt-get install libboost-all-dev

Эта команда будет загружать и верифицировать Berkeley Database:

$ wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz

$ echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef  db-4.8.30.NC.tar.gz' | sha256sum -c

После ввода команды echo вы должны получить ответ:

db-4.8.30.NC.tar.gz: O`K

Следующие команды извлекут (tar -xvf) Berkley Database, которую мы только что загрузили и установили. Она также установит ярлык пути, так что только BDB_PREFIX нужно ввести при ссылке на зависимость. Обычно, когда вы вводите команду, если вы уже на середине пути, вам нужно только ссылаться на оставшийся путь. Но, когда вы компилируете, следует указать весь путь:

$ tar -xvf db-4.8.30.NC.tar.gz
$ cd db-4.8.30.NC/build_unix
$ mkdir -p build
$ BDB_PREFIX = $ (pwd) / build
$ ../dist/configure --disable-shared --enable-cxx --with-pic --prefix = $ BDB_PREFIX
$ sudo make install
$ cd ../ ..

Больше библиотек:

$ sudo apt-get install libminiupnpc-dev

$ sudo apt-get install libzmq3-dev

$ sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler

$ sudo apt-get install libqrencode-dev

Этим и завершается подготовка. Теперь начинаем устанавливать биткоин.

Часть 3. Компиляция Bitcoin Core 0.16.0

Мы находимся в /home/satoshi/bitcoin-source, поэтому давайте перейдём в директорию /bitcoin, скомпилируем и установим:

$ cd bitcoin
$ git checkout tags/v0.16.0
$ ./autogen.sh
$ ./configure CPPFLAGS="-I${BDB_PREFIX}/include/ -O2" LDFLAGS="-L${BDB_PREFIX}/lib/" --with-gui
$ make
$ sudo make install

git checkout tags/v0.16.0 отсылают на конкретный сommit из истории git. «Ветви» могут изменяться по мере обновления, поэтому ссылка на ветку может привести к тому, что команда не будет работать в будущем.

./autgen.sh просто приготовит файлы для установки.

Часть 4. Настройка вашей новой ноды и ознакомление с ней

Большая часть этого раздела не требует запуска программного обеспечения. В будущем вы, скорее всего, просто запустите его в фоновом режиме. Опять же, это просто поможет вам понять, что происходит «за кулисами».

Первое, что вам нужно сделать, прежде чем запустить биткоин в первый раз, — это создать несколько окон. Сначала мы запустим версию GUI, называемую bitcoin-qt, затем мы выйдем из неё и запустим версию без GUI, названную bitcoind, а потом вернёмся к bitcoin-qt с некоторыми действиями и конфигурациями между ними, чтобы вы могли понять, как это работает.

Закройте все открытые окна и откройте два новых окна терминала и диспетчер файлов. В диспетчере файлов перейдите в /home/satoshi/. Вам нужно нажать Home на боковой панели. Затем в строке меню в верхней части выберите Control и установите флажок Hidden Files. В одном из окон терминала введите следующее:

$ mkdir ~/.bitcoin
$ cd ~/.bitcoin

Теперь вы должны увидеть папку с именем .bitcoin в диспетчере файлов. Перейдите в эту папку.

Создадим файл debug.log. Когда вы впервые запускаете биткоин, файл debug.log создаётся автоматически, но вы поймёте, почему я хочу сделать это раньше:

$ touch ~/.bitcoin/debug.log

Теперь мы запустим файл debug.log. Файлы регистрации (логи) постоянно обновляются с новыми строками информации, так как программа ведёт журналирование своих действий. Команда tail показывает вам последние записи в этом файле, но только один раз. Использование флага -f даст вам непрерывный поток этих обновлений. Когда вы введёте следующую команду, вы ничего не увидите, потому что биткоин ещё не запущен, но мы оставим его так:

$ tail -f ~/.bitcoin/debug.log

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

$ bitcoin-qt

Вы увидите изображение загрузки, а затем — графический интерфейс с сообщением о состоянии синхронизации. Вы начнёте видеть активность в терминале, где привязали файл debug.log. Всё вышесказанное должно выглядеть так:

Вы можете наблюдать это очень долго, потому что для синхронизации потребуется много времени. В окне терминала вы можете ввести bitcoin-qt и нажать CONTROL + C. Вы увидите, что GUI закроется, и логи в журналах остановятся. Вы можете читать сообщения о выходе в логах, прокручивая вверх, и изучать все произошедшие события. Теперь в том же терминале запустите bitcoin-qt и введите следующее:

$ bitcoind

Вы должны увидеть log tail снова. Биткоин работает в фоновом режиме. Ещё раз нажмите CONTROL + C и дайте ему остановиться.

Нам нужно создать файл конфигурации, поэтому в файловом проводнике создайте файл bitcoin.conf. Откройте его, введите следующее и сохраните файл:

debug=net

По умолчанию не все данные включены в журналирование. Установка 1 позволит включать все данные, но их слишком много и информация будет пролетать стремительно. Вы можете установить следующие параметры: net, tor, mempool, http, bench, zmq, db, rpc, valufee, addrman, selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej, libevent, coindb, qt, leveldb.

Кроме того, вы можете настроить узел, чтобы обрезать (prune) блокчейн по мере его заполнения. Сейчас весь блокчейн весит около 160 Гб. Если у вас недостаточно места для хранения, вы можете сократить данные до 5 Гб (на данный момент). Я не рекомендую этого делать без необходимости, но вы можете обрезать блокчейн до 10 Гб следующей командой:

debug=net
prune=10000

В вашем конфигурационном файле может быть множество параметров, и неважно, в каком порядке они находятся. Он может выглядеть так, если вы, например, хотите ограничить свои мемпул-узлы транзакциями на 100 Мб:

maxmempool=100
prune=10000
debug=net

Откройте третий терминал и введите следующее:

$ tail -f ~ / .bitcoin / debug.log | grep "UpdateTip:"

grep — это команда, которая имеет несколько функций, но в этом контексте она будет выводить информацию из первой команды и фильтровать её, чтобы отображались только строки, содержащие указанный внутри кавычек текст.

В другом терминале введите следующее:

$ tail -f ~/.bitcoin/debug.log | grep -v "UpdateTip:\|Requesting block\|sending getdata\|recieved block\|received: block"

Это та же команда, но с флагом -v, она будет делать противоположное предыдущей команде и отбрасывать любую строку с указанным нами текстом.

Итак, теперь мы можем отфильтровывать некоторую информацию, чтобы данные обновлялись не так быстро. Не стесняйтесь играть с настройками, исключая лишнее и добавляя нужное именно вам.

Вот и всё! В зависимости от вашего оборудования / пропускной способности сети этот процесс может занять от нескольких часов до нескольких недель (последнее маловероятно).

Когда блокчейн будет окончательно синхронизирован, блоки станут добавляться в среднем каждые 10 минут, а debug.log начнёт показывать гораздо больше активности.

Часть 0. Для тех, кому просто нужны команды:

sudo apt-get update;
sudo apt-get install git;
mkdir -p bitcoin-source && cd bitcoin-source
git clone https://github.com/bitcoin/bitcoin.git;
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3;
sudo apt-get install libboost-all-dev;
wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz;
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef  db-4.8.30.NC.tar.gz' | sha256sum -c;
tar -xvf db-4.8.30.NC.tar.gz;
cd db-4.8.30.NC/build_unix;
mkdir -p build;
BDB_PREFIX=$(pwd)/build;
../dist/configure --disable-shared --enable-cxx --with-pic --prefix=$BDB_PREFIX;
sudo make install;
cd ../..;
sudo apt-get install libminiupnpc-dev;
sudo apt-get install libzmq3-dev;
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler;
sudo apt-get install libqrencode-dev;
cd bitcoin;
git checkout tags/v0.16.0;
./autogen.sh;
./configure CPPFLAGS="-I${BDB_PREFIX}/include/ -O2" LDFLAGS="-L${BDB_PREFIX}/lib/" --with-gui;
make;
sudo make install;bitcoin-qt

Руководство: Официальный биткоин кошелек Bitcoin Core

Практически все современные криптокошельки позволяют хранить и пересылать биткоин. Однако 10 лет назад ситуация отличалась кардинально: тогда существовало всего одно приложение для взаимодействия с сетью главной криптовалюты — Bitcoin Core. И сегодня, несмотря на появление множества альтернативных кошельков, это ПО все еще продолжает занимать важнейшую роль в работе первого блокчейна.

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

Официальный кошелек биткоина Bitcoin Core: понятие и краткая история

Bitcoin Core — это официальное программное обеспечение с открытым исходным кодом, сочетающее в себе функции биткоин-кошелька и полной ноды, с помощью которой участники сети могут поддерживать ее работоспособность.

Первая версия приложения была разработана в 2009 году Сатоши Накамото и носила то же самое название, что и основной продукт — Bitcoin. До 2011 года код кошелька публиковался на самом популярном на тот момент портале для разработчиков SourceForge. Затем состоялся «переезд» на GitHub, где и размещаются все результаты разработки по сегодняшний день. С самого начала официальным веб-ресурсом блокчейн-проекта и кошелька был сайт Bitcoin.org, с которого также всегда можно скачать последнюю версию приложения.

С 2012 года поддержкой разработки всего ПО на базе оригинального кода биткоина занимается некоммерческая организация Bitcoin Foundation. По ее инициативе в декабре 2013 года бумажник был переименован на Bitcoin Core, под которым и известен до сегодня.

В октябре 2016-го этот кошелек стал одним из первых приложений, в которых появилась возможность отправки транзакций на базе все еще тестируемой на тот момент технологии SegWit, нацеленной на улучшение масштабирования и пропускной способности сети биткоина. А в версиях, выпущенных после февраля 2018-го, поддержка Segregated Witness уже включена по умолчанию.

В данный момент Bitcoin Core является одним из немногих безостановочно развивающихся криптовалютных кошельков, поддерживающих исключительно биткоин. Выпускается только в десктопной версии для компьютеров под управлением Windows, MacOS или Linux. Относится к категории «толстых» биткоин-кошельков и является самым популярным ее представителем.

Установка и начало работы с Bitcoin Core

Первым делом необходимо с официального сайта Bitcoin Core по адресу Bitcoin.org скачать последнюю версию приложения, подходящую под установленную на компьютере пользователя операционную систему. Затем нужно произвести установку скачанного ПО в любое удобное место (по умолчанию — C:\Program Files\Bitcoin).

При первом запуске приложения нужно будет указать путь для хранения блокчейна и файла с кошельком пользователя. Это может быть как предложенная по умолчанию папка, так и любая другая. Обязательное условие при этом — расположение в разделе жесткого диска с не менее, чем 243 Гб свободного места (на момент написания этого материала). 

Указание пути для хранения блокчейна биткоина

Рекомендуется, чтобы кроме указанного в окне приложения актуального размера блокчейна, присутствовало еще хотя бы 20–30 резервных гигабайт места. Это нужно для обеспечения бесперебойной работы Bitcoin Core на ближайшее время, так как вес сети стабильно увеличивается (примерно на 150 Мб каждый день).

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

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

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

Синхронизация кошелька Bitcoin Core с сетью биткоина

После завершения загрузки можно начинать использовать Bitcoin Core как биткоин-кошелек и/или ноду, предварительно произведя необходимые настройки.

Настройка официального клиента Bitcoin Core

Все доступные для изменения параметры Bitcoin Core находятся в меню «Настройки/Опции»:

  • Главные — на этой вкладке можно настроить автозапуск приложения при старте системы, изменить установленный по умолчанию кэш базы данных, а также воспользоваться функцией сокращения хранимого блокчейна до нескольких гигабайт (после полной синхронизации для работы кошелька по факту нужны лишь последние 551 блоки).

Настройки Bitcoin Core: Главные

  • Кошелек — здесь всего две опции, позволяющие включить управление монетами и использование в исходящих транзакциях входов, которые еще не подтверждены.

Настройки Bitcoin Core: Кошелек

  • Сеть — для нормального функционирования приложения в качестве ноды и синхронизации с сетью в этом разделе обязательно должна стоять галочка в строке «Разрешить входящие соединения». Остальные настройки опциональны и могут использоваться в случае проблем с доступом к блокчейну биткоина или же для повышения конфиденциальности.

Настройки Bitcoin Core: Сеть

  • Окно — здесь настраиваются правила сворачивания приложения и отображения его в системном трее.

Настройки Bitcoin Core: Окно

  • Отображение — в этой вкладке можно изменить локализацию приложения через выпадающее меню «Язык пользовательского интерфейса». В строке «Отображать суммы в единицах» имеется возможность установки отображения баланса и деталей транзакций в одном из вариантов: BTC (биткоин), mBTC (миллибиткоин), µBTC (микробиткоин) или satoshi (сатоши). Также здесь присутствует поле для указания стороннего эксплорера, чтобы в описании транзакций в кошельке отображались ссылки для их просмотра через браузер.

Настройки Bitcoin Core: Отображение

Все перечисленные настройки и различные дополнительные команды для Bitcoin Core могут производиться через Консоль, которая запускается одноименным пунктом из меню «Окно». Этим инструментом, как правило, пользуются продвинутые пользователи и разработчики. Полный список доступных команд можно просмотреть через меню «Помощь/Опции командной строки».

Список команд для командной строки Bitcoin Core

Использование Bitcoin Core в качестве кошелька

При запуске Bitcoin Core по умолчанию всегда открывается вкладка «Обзор», в которой виден баланс бумажника (доступный, в ожидающих переводах и общий), а также список последних транзакций по отправке или получению средств пользователем. Более подробный список операций с участием текущего кошелька доступен на вкладке «Транзакции».

Обзор баланса и последних транзакций в Bitcoin Core

Перед началом работы с кошельком первым делом рекомендуется зашифровать его с помощью надежного пароля. Делается это через меню «Настройки/Зашифровать кошелек». При этом желательно обратить внимание на предупреждение программы о том, что если пользователь забудет пароль, то навсегда потеряет свои биткоины. Эту комбинацию нужно будет вводить каждый раз при разблокировании кошелька и отправке транзакций. Поэтому важно сохранить ее в надежном месте.

Процесс шифрования кошелька через Bitcoin Core

При необходимости пароль можно изменить через соответствующий пункт в меню «Настройки». Остальные этапы взаимодействия с кошельком рассмотрим более подробно.

Создание адресов и получение платежей

Чтобы создать новый BTC-адрес (публичный ключ) в Bitcoin Core, нужно воспользоваться функцией «Получить». В открывшемся окне можно указать название для нового кошелька (поле «Метка»), чтобы было легче отличить его от других. Оно будет видно только текущему пользователю внутри приложения. В поле «Количество» можно указать сумму в случае, если адрес создается для запроса от кого-то платежа конкретного размера.

Также в форме генерации нового кошелька имеется опция «Создать родной segwit (bench42) адрес». Если отметить ее галочкой, новый адрес можно будет использовать в транзакциях на базе технологии SegWit. Это значит, что они будут проходить быстрее и с более дешевой комиссией, по сравнению с использованием более старых стандартов legacy и p2sh.

В поле «Сообщение» можно вписать послание для человека, которому будет отправлен запрос на платеж. Все перечисленные параметры опциональны, т.е. использовать их не обязательно. Кнопку «Запросить платеж» можно нажимать, как с заполненными полями, так и без них.

Создание нового BTC-адреса через Bitcoin Core

После этого открывается окно с QR-кодом, в котором будет зашифрован адрес созданного кошелька. Если перед этим было указано количество монет, при расшифровке QR-кода сумма отправки на стороне потенциального отправителя автоматически установится на указанную получателем цифру.

Детали нового BTC-адреса, созданного под определенный платеж

Также новый адрес и сопутствующие данные будут отображены под QR-кодом в текстовом формате и в виде URI — гиперссылки, которую можно открывать на других компьютерах с установленным клиентом Bitcoin Core через меню «Файл/Открыть URI…».

После создания все новые кошельки попадают в «Историю платежных запросов», где их можно просматривать и при необходимости удалять. Но как только на какой-либо из них поступит перевод, он сразу же исчезнет из этого списка. Это сделано для безопасности, чтобы пользователи Bitcoin Core каждый раз для получения платежей использовали новые адреса. Правда просмотреть и повторно использовать такие кошельки все же можно — через меню «Окно/Адреса для получения».

Список адресов, использованных для получения платежей через Bitcoin Core

Отправка транзакций через Bitcoin Core

Чтобы воспользоваться функцией отправки платежей, нужно перейти на вкладку «Отправить» и заполнить отобразившуюся при этом форму. В строке «Заплатить» указывается адрес получателя перевода. Можно вставить его вручную или выбрать из списка ранее использованных. Поле метка заполняется произвольным обозначением, под которым адрес получателя в дальнейшем будет добавлен в упомянутый список (доступен к просмотру через меню «Окно/Адреса для отправлений»).

В поле «Количество» вводится сумма перевода. Рядом с ним присутствует опция «Вычесть комиссию из суммы». При установке здесь галочки, комиссионные отчисления за проведение транзакции будут вычтены из количества отправленных монет. Следовательно, к получателю дойдет немного уменьшенная сумма. Чтобы комиссия не затронула пересылаемое количество биткоинов, галочку ставить не стоит. Если нажать кнопку «Использовать доступный баланс», сумма платежа будет автоматически установлена соответственно количеству доступных монет в кошельке.

Следующий раздел в форме подготовки исходящей транзакции посвящен настройке комиссии. Здесь можно воспользоваться опцией «Рекомендованное значение». В этом случае размер комиссионных будет автоматически установлен на рассчитанное системой значение в зависимости от текущей загруженности сети и ожидаемого времени подтверждения (выбирается в соответствующем выпадающем меню).

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

Следующая опция, которая называется «Включить Replace-by-fee», используется для обеспечения возможности увеличения комиссии и ускорения транзакции в случае ее зависания в мемпуле.

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

На этом оформление исходящей транзакции можно считать завершенным. Остается лишь нажать «Отправить» и подтвердить свое намерение с помощью пароля, которым зашифрован кошелек.

Отправка транзакции через Bitcoin Core

Резервное копирование кошелька и извлечение приватных ключей

Создать резервную копию кошелька в Bitcoin Core можно с помощью одноименной функции из меню «Файл». При этом приложение попросит указать путь для ее сохранения.

Создание резервной копии кошелька в Bitcoin Core

Также можно через любой файловый проводник открыть папку Wallets, находящуюся в директории, которая была выбрана пользователем для хранения блокчейна. Там будет расположен автоматически сгенерированный файл «wallet.dat», копирование которого приведет к получению резервной копии кошелька, ничем не отличающейся от полученной через программное меню.

Выполнять резервное копирование рекомендуется как можно чаще, желательно после каждой операции получения средств и/или создания нового BTC-адреса, выбирая для хранения полученного файла надежный носитель, желательно отключенный от сети. Только в этом случае получится восстановить доступ к своему балансу после переустановки приложения Bitcoin Core или запуске его на другом компьютере. Для восстановления нужно будет поместить резервный файл в папку Wallets, соглашаясь на замену уже имеющегося.

В случае использования устаревшей копии кошелька, доступ ко всем полученным после ее создания монетам будет утерян. Если же у пользователя не будет сохранено резервного файла wallet.dat, восстановить доступ к средствам вообще не получится.

Когда пользователю понадобится приватный ключ от любого из созданных в Bitcoin Core адресов, например, для импортирования в другое приложение кошелька, просмотреть его можно с помощью команды «dumpprivkey …», которая вводится в упомянутую выше консоль. При этом вместо «трех точек» вводится BTC-адрес, от которого необходимо получить приватный ключ.

Чтобы команда сработала, предварительно нужно выполнить разблокировку, указав пароль с помощью команды «walletpassphrase pass time» (вместо pass вписать пароль, вместо time — период, на который выполняется разблокировка кошелька).

Экспорт приватного ключа через консоль Bitcoin Core

«Холодное» хранение с помощью Bitcoin Core

Чтобы организовать «холодное» хранение биткоинов через данное приложение, нужно выполнить всего лишь несколько простых шагов:

  1. В полностью синхронизированном кошельке на вкладке «Получить» нужно создать необходимое количество новых адресов и записать/распечатать их адреса на бумаге.
  2. Сделать несколько резервных копий файла wallet.dat на разных отключенных от сети носителях.
  3. Удалить оригинальный файл с ПК с установленным кошельком;
  4. Перевести биткоины на распечатанные адреса.

В итоге монеты окажутся на BTC-адресах, приватные ключи которых ни разу не использовались для доступа к ним. Пока это условие будет сохраняться, речь будет идти о «холодном» хранении биткоинов. Для получения доступа к этим монетам необходимо скопировать резервный wallet.dat в соответствующую папку на компьютере с установленным Bitcoin Core.

Использование Bitcoin Core для запуска полной ноды Bitcoin

Основная задача полной ноды заключается в валидации блоков с транзакциями и последующей ретрансляции их на другие узлы. Таким образом каждый запущенный и полностью синхронизированный клиент Bitcoin Core помогает поддерживать работоспособность сети, а в его локальном хранилище содержится обновляемая копия всего блокчейна биткоина с полной историей транзакций.

Все, что нужно для запуска полной ноды Bitcoin — установить приложение Bitcoin Core и дождаться загрузки всего блокчейна (подробно описано в разделе о начале работы с кошельком). Также нужно убедиться, что разрешены входящие соединения в сетевых опциях кошелька и открыт TCP-порт 8333 (в настройках роутера и брандмауэра).

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

В данный момент управление полной нодой не имеет ничего общего с майнингом биткоина. Ранее эта функция присутствовала в Bitcoin Core, но из-за низкой эффективности добычи была удалена из всех версий приложения, начиная с августа 2016 года. Поэтому все полные ноды на Bitcoin Core сейчас запускаются исключительно на волонтерских основах (без получения вознаграждения) для поддержания работы сети.

Из 9300 активных в данный момент нод около 9 тыс. приходятся на Bitcoin Core. Остальные 300 запущены через альтернативные приложения вроде Armory, mSIGNA и Bitcoin Knots.

Плюсы и минусы Bitcoin Core

Основные преимущества использования программного обеспечения Bitcoin Core состоят в следующем:

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

Серьезных недостатков у Bitcoin Core практически не имеется. Все, в чем можно его упрекнуть — поддержка всего лишь одной криптовалюты, длительный процесс синхронизации с сетью и необходимость большого количества свободного места на жестком диске.

В остальном же перед нами настоящий кошелек-мастодонт, который, несмотря на свой почтенный возраст, все еще не желает сдавать свои позиции в сфере хранения BTC. Упомянутые недостатки могут отпугнуть часть современных пользователей, предпочитающих легкость, мобильность и скорость. Однако, участники криптосообщества, которые ценят «холодную» надежность, еще очень долго будут выбирать Bitcoin Core в качестве основного хранилища для своих биткоинов.

Будь в курсе! Подписывайся на Криптовалюта.Tech в Telegram.
Обсудить актуальные новости и события на Форуме

Лучший способ ускорить синхронизацию крипто валют

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

Загружаются и устанавливаются стандартно, но почти все новички интересуются, как долго ждать полной синхронизации. Иногда она затягивается на несколько дней.

Как ускорить синхронизацию Bitcoin, Ethereum и других кошельков? Скорость зависит от того, насколько у вас быстрый интернет.

К сожалению, сервера не всегда работают на полную мощность, поэтому приходится долго ждать загрузки. Общая база данных кошелька занимает от 20 Гб дискового пространства.

Синхронизация – загрузка блоков

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

Блоки скачиваются за несколько месяцев, а иногда и за несколько лет, которые существует криптовалюта. Интерфейс везде разный, но выглядит процедура синхронизации одинаково:

Кто-то решает эту проблему созданием мультивалютных кошельков через биржи, некоторые открывают онлайн кошельки или загружают «лёгкие» версии клиентских приложений. Но в них не всегда доступны малоизвестные криптовалюты, поэтому приходится скачивать весомые программы.

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

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

Как ускорить синхронизацию Bitcoin или Ethereum wallet?

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

Проверив ресурсы ПК, он заметил, что используется не так много ОЗУ и на процессор не идет нагрузка. Скорость интернета позволяет грузить быстрее, но что-то тормозит операцию:

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

Идеальное решение SSD диск. Его вы можете приобрести в любом магазине компьютерной техники или заказать на Aliexpress.

Скачивай блоки одним архивом на Cryptochainer

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

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

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

Сэкономить время действительно удается, но учтите, что блоки занимают много места, поэтому всё равно придется подождать их загрузки:

Сделано всё в простом формате, из огромного списка потребуется выбрать нужный вам блокчейн. Полный список криптовалют публиковать не будем, потому что их слишком много и постоянно добавляются новые. Здесь вы можете загрузить блоки таких популярных альткоинов, как:

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

Учтите, что данные увеличиваются постоянно, поэтому мы не можем сказать, сколько весит тот или иной архив под какую-то криптовалюту.

Как работает синхронизация с Cryptochainer?

Способ ускоренной синхронизации через загруженные блокчейны позволяет быстрее войти в сеть, причем платить ничего не потребуется.

Можно параллельно скачивать архивы под разные криптовалюты. Дальнейшие действия тоже не отличаются сложностью, что вам потребуется сделать:

  1. Заходите на Cryptochainer, находите в списке необходимый блокчейн под криптовалюту, потом нажимаете на кнопку загрузки.
  2. После завершения скачивания, необходимо извлечь данные из архива в любую папку на компьютере.
  3. Теперь нужно зайти в папку кошелька, как правило, она находится по этому адресу C:\User\Admin\AppData\Roaming\Bitcoin (последняя директория может называться по-другому, в зависимости от криптовалюты.
  4. Нужно удалить всю информацию из этой папки, за исключением файла wallet.dat. На всякий случай создайте резервную копию на ПК.
  5. Остается только загрузить в эту папку извлеченные данные из архива (пункт 2).

Архивы с блоками на Cryptochainer обновляются не каждый день. Но они не сильно устаревшие (на неделю, месяц). Поэтому, при запуске кошелька, всё равно начнется синхронизация, однако будут подгружены остальные данные.

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

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

Здесь же все блоки проверенные, а о сайте написано немало положительных отзывов.

Вам также будет интересно:
— Криптовалюта NEM (XEM) – инвестиции в монеты
— Гайд – как собрать первую криптовалюту
— Инвестиции в криптовалюту без навыков с Satoshi.fund

Кошелек

не синхронизируется — почему ваш кошелек не синхронизируется и как это исправить

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

Одна из наиболее частых проблем, с которыми сталкиваются пользователи основного кошелька, — «Wallet Out of Sync». Либо процесс синхронизации кошелька будет медленнее, либо он застрянет в определенном блоке и вообще не будет синхронизироваться. Итак, почему ваш кошелек не синхронизируется или работает медленно и что делать, если он не синхронизирует / не обрабатывает блокчейн?

Синхронизация кошелька

Биткойн, Dash, Litecoin и каждый альткойн имеют свой собственный основной кошелек. Хотя внешний вид каждого кошелька может немного отличаться, его функции остаются прежними.Всякий раз, когда вы открываете свой кошелек QT, первое, что делает ваш кошелек: он начинает сканировать все последние блоки в цепочке блоков и пытается догнать сеть. Является ли ваш кошелек новой установкой или вы используете его в течение длительного времени; если он не обновлен, он начнет загрузку блокчейна.

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

Это действительно синхронизация?

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

Теперь, сколько времени потребуется для синхронизации, зависит от следующих факторов: 1. Общее количество блоков, оставшихся для обработки 2.Количество активных подключений к сети Биткойн и 3. Скорость вашего интернета. Если вы ищете решение для ускорения синхронизации кошелька, то этот пост не для вас. Для этого мы предлагаем вам прочитать это руководство на Bitcoin Bootstratp.dat. Этот пост предназначен для пользователей, которые сталкиваются с проблемами синхронизации своих кошельков.

Прежде чем мы перейдем к руководству по устранению неполадок, нам нужно сначала выяснить, действительно ли ваш кошелек синхронизируется или он действительно завис? Наведите указатель мыши на индикатор выполнения или щелкните значок обновления, и он покажет статус обработанных блоков и последних полученных блоков.Просто посмотрев на статус загрузки блокчейна, вы узнаете, действительно ли ваш кошелек синхронизируется или завис. Он показывает примерно следующее:

Догоня ...
Скачано 383912 блоков истории транзакций.
Последний полученный блок был создан 6 дней назад.

Если он показывает некоторый прогресс, значит, он синхронизируется, и будьте терпеливы. Но если количество обрабатываемых блоков не меняется длительное время, значит, ваш кошелек завис.Если это ваш случай, то вот несколько способов устранить рассинхронизацию кошелька qt.

Кошелек не синхронизируется — Устранение проблем с рассинхронизированным кошельком QT

Так почему ваш кошелек не синхронизируется? Вот несколько распространенных причин:

  1. Проблемы широкополосного доступа и межсетевого экрана
  2. Нет активного подключения к сети монет
  3. Данные вашей цепочки блоков могут быть повреждены и
  4. Ваш кошелек может быть старым и не на той цепочке.

Теперь, прежде чем вносить какие-либо изменения, первое, что мы рекомендуем вам сделать, — это сделать резервную копию кошелька.

Проблемы с подключением к Интернету и межсетевым экраном

Сначала проверьте, есть ли у вашего ПК исправное сетевое соединение. Если с вашим Интернетом все в порядке, проверьте, не блокирует ли ваш брандмауэр или антивирус запуск кошелька. Как мы уже говорили, ваш кошелек должен подключаться к другим узлам для загрузки блокчейна. Поэтому убедитесь, что ваш брандмауэр или сеть не блокируют входящие и исходящие соединения ваших кошельков. Обычно это решает проблему, а если не помогает, проверьте активное соединение кошелька.

Проверить подключение кошелька и добавить узлы

Откройте кошелек, и в правом нижнем углу вы увидите значок сигнала. Наведите курсор на вертикальные полосы и проверьте общее количество активных подключений к сети. Если соединение сильное, переходите к следующему шагу. Если активных подключений ноль или меньше 4 или 5 активных подключений, вам необходимо добавить узлы в свой кошелек.

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

Поврежденный блокчейн

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

Обновите и переиндексируйте свой кошелек

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

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

Синхронизация сети

для маршрутизаторов с интегрированными сервисами Cisco серии 4000

Как настроить синхронизацию сети

Настройка восстановления тактовой частоты с помощью основного источника тактовой частоты

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

КРАТКИЕ ДЕЙСТВИЯ

1. настроить терминал

2. синхронизация сетевых часов автоматическая

3. Контроллер [t1 | e1] слот / отсек / порт

4. линия источника тактовой частоты первичный

5. источник ввода сетевых часов приоритет контроллер [t1 | e1] слот / отсек / порт

6. выход

ПОДРОБНАЯ ИНФОРМАЦИЯ

Шаг 1

настроить терминал

Маршрутизатор # настроить терминал

Переход в режим глобальной конфигурации.

Шаг 2

автоматическая синхронизация сетевых часов

Маршрутизатор (конфигурация) # автоматическая синхронизация сети и часов

Включает алгоритм выбора сетевых часов.(Обратите внимание, что синхронизация сетевых часов по умолчанию отключена.) Отключает специфичный для Cisco процесс сетевых часов и включает процесс автоматического выбора часов на основе G.781.

Шаг 3

контроллер [t1 | e1] слот / отсек / порт

Маршрутизатор (конфигурация) # контроллер t1 02/02/0

Выбирает контроллер.

Шаг 4

тактовая линия источника [первичный | вторичный]

Маршрутизатор (конфигурация) # первичная линия источника синхронизации

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

Шаг 5

источник ввода сетевых часов приоритет Контроллер [t1 | e1] слот / отсек / порт

Router (config) # network-clock input-source 1 controller t1 02/02/0

Назначает контроллер в качестве основного или дополнительного источника синхронизации.Чтобы установить контроллер в качестве основного источника синхронизации, установите значение приоритета , для источника входного сигнала, как низкое значение, например 2 (низкое значение указывает на высокий приоритет).

Примечание Команда network-clock input-source priority , которая выбирает настроенные часы контроллера в качестве источника синхросигнала объединительной платы, доступна только в том случае, если модуль участвует в объединительной плате.

Шаг 6

выход

Маршрутизатор (конфигурация) # exit

Выход из режима глобальной конфигурации.

Настройка отмены выбора основного источника синхронизации

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

КРАТКИЕ ДЕЙСТВИЯ

1. настроить терминал

2. нет источника ввода сетевых часов приоритет контроллер [ t1 | e1 ] слот / отсек / порт

ПОДРОБНАЯ ИНФОРМАЦИЯ

Шаг 1

настроить терминал

Маршрутизатор # настроить терминал

Переход в режим глобальной конфигурации.

Шаг 2

нет источника входного сигнала сетевых часов приоритет контроллер [t1 | e1] слот / отсек / порт

Маршрутизатор (конфигурация) # нет контроллера входного источника сетевых часов 1 t1 0/2/0

Отменяет выбор источника синхронизации.

Пример: отмена выбора источника синхронизации

В этом примере контроллер 0/2/0 T1, выбор которого был отменен, не отображается в списке источников синхронизации, показанном командой show network-clocks synchronization .

Router # показать синхронизацию сетевых часов

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобальное): 300 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

* Внутренний NA NA / Dis 251 QL-SEC NA NA

Настройка участия модуля в часах объединительной платы

По умолчанию NIM (модуль) участвует в часах объединительной платы.В первых двух примерах, приведенных ниже, команда
показать аппаратный подслот платформы слот / подслот модуль устройство networkclock проверяет, участвует ли модуль в тактовой частоте объединительной платы.

Если вам не нужна синхронизация часов с часами объединительной платы для NIM, вы можете использовать
без участия в синхронизации сетевых часов слот / sublot команда, показанная в примере 3: Отключение и включение Модуль от участия в часах объединительной платы.

Пример 1: Проверка того, что модуль участвует в часах объединительной платы

В этом примере показать подслот оборудования платформы слот / подслот модуль устройства networkclock команда показывает:

«ntwk_clk_selected No» — ни один из портов NIM 0/2 не настроен как источник ввода. Чтобы назначить контроллер в качестве источника входных тактовых импульсов, см. Команду network-clock input-source priority controller [t1 | e1] slot / bay / port в разделе «Настройка восстановления тактовой частоты с помощью основного источника тактовой частоты».

«ntwk_clk_participate Yes» — NIM 0/2 участвует в часах объединительной платы маршрутизатора. Это значение по умолчанию для NIM, подключенного к маршрутизатору.

Маршрутизатор # показать аппаратный подслот платформы 0/2 модуль устройства сетевые часы

основные часы 255, вторичные часы 0, ntwk_clk_selected Нет, ntwk_clk_participate Да, текущие часы = 0

Статус ФАПЧ = 1 и cntl = 7

Пример 2: Проверка того, что модуль участвует в тактовой частоте объединительной платы и выбран в качестве источника

В этом примере источник ввода сетевых часов приоритет контроллер [t1 | e1] slot / bay / port команда настраивает NIM 0/2/0 в качестве источника входной синхронизации.

Подслот оборудования платформы шоу Слот / Подслот модуль устройства networkclock команда показывает:

«ntwk_clk_selected Yes» — порт на контроллере NIM 0/2 T1 выбран в качестве источника входной синхронизации.

«ntwk_clk_participate Yes» — контроллер NIM 0/2 T1 участвует в часах объединительной платы маршрутизатора.

Маршрутизатор # настроить терминал

Маршрутизатор (конфигурация) # Контроллер ввода-источника 150 сетевых часов T1 0/2/0

Маршрутизатор (конфигурация) # конец

Маршрутизатор № Показать аппаратный подслот платформы 0/2 модуль устройства, сетевые часы

основные часы 255, второстепенные часы 0, ntwk_clk_selected Да, ntwk_clk_participate Да, текущие часы = 0

Статус ФАПЧ = 1 и cntl = 17

Пример 3: Отключение и включение модуля от участия в часах объединительной платы

В следующем примере NIM 0/2 отключен от участия в часах объединительной платы, используя команду
без участия синхронизации сетевых часов 0/2 .Это отображается командой show platform hardware subslot slot / subslot module device device networkclock command. ntwk_clk_participate = «Нет» означает, что участие модуля отключено.

Маршрутизатор # настроить терминал

Маршрутизатор (конфигурация) # нет синхронизации сетевых часов 0/2

Маршрутизатор (конфигурация) # конец

Маршрутизатор № Показать подслот аппаратного обеспечения платформы 0 / 2 модуль устройства, сетевые часы

основные часы 255, вторичные часы 0, ntwk_clk_selected Нет, ntwk_clk_participate Нет, текущие часы = 0

Статус ФАПЧ = 2 и cntl = 6

Затем NIM 0/2 заставляется участвовать в часах объединительной платы, используя
синхронизацию сетевых часов 0/2 команда.Это подтверждается командой show platform hardware subslot slot / subslot module device device networkclock command. ntwk_clk_participate = «Да» указывает, что участие модуля разрешено.

Маршрутизатор # настроить терминал

Маршрутизатор (конфигурация) # участие в синхронизации сети и часов 0/2

Маршрутизатор (конфигурация) # конец

Маршрутизатор # Показать подслот оборудования платформы 0/2 Модуль устройства, сетевые часы

основные часы 255, второстепенные часы 0, ntwk_clk_selected Нет, ntwk_clk_participate Да, текущие часы = 0

Статус ФАПЧ = 2 и cntl = 6

Настройка синхронизации сети в реверсивном режиме

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

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

КРАТКИЕ ДЕЙСТВИЯ

1. реверсивное сетевое время

2. показать синхронизацию сетевых часов

ПОДРОБНАЯ ИНФОРМАЦИЯ

Шаг 1

реверсивные сетевые часы

Маршрутизатор (конфигурация) # возврат сетевых часов

Настраивает реверсивный режим для сетевых часов.

Шаг 2

показать синхронизацию сетевых часов

Маршрутизатор # показать синхронизацию сетевых часов

Проверяет, что сетевые часы теперь находятся в реверсивном режиме.

Пример: настройка сетевого тактирования в реверсивном режиме

Следующий пример начинается с установки двух источников синхронизации:

  • T1 0/3/0 — вторичный источник синхронизации (более низкий приоритет, чем T1 0/2/0)
  • T1 0/2/0 — основной источник синхронизации (более высокий приоритет, чем T1 0/3/0)

Реверсивный режим устанавливается для синхронизации сети с помощью команды network-clock revertive для основного источника синхронизации.

Поскольку T1 0/2/0 имеет более высокий приоритет, чем T1 0/3/0, T1 0/2/0 выбран в качестве источника синхронизации. Первая команда
show network-clocks synchronization в примере показывает выбранный источник синхронизации T1 0/2/0 в реверсивном режиме.

В этом примере предполагается, что основной источник синхронизации отключается после первой команды show network-clocks synchronization . В этой ситуации T1 0/3/0 выбран в качестве источника синхронизации. Состояние QL-IN показано как «QL-FAILED» во второй команде show network-clocks synchronization ниже.

Позже, в результате установки реверсивного режима, когда источник синхросигнала T1 0/2/0 снова возвращается в рабочее состояние, выбранные часы возвращаются к T1 0/2/0. Это показано третьей командой show-network-clocks synchronization в примере. (Если реверсивный режим не был установлен, при восстановлении T1 0/2/0 источник синхронизации останется как T1 0/3/0 и не вернется к T1 0/2/0.)

Маршрутизатор # настроить терминал

Маршрутизатор (config) # автоматическая синхронизация сети и часов

Маршрутизатор (конфигурация) # реверсирование сетевых часов

Маршрутизатор (конфигурация) # контроллер t1 02/02/0

Маршрутизатор (config-controller) # первичная линия источника синхронизации

Маршрутизатор (config) # network-clock input-source 1 controller t1 0/2/0

Маршрутизатор (конфигурация) # контроллер t1 0/3/0

Маршрутизатор (config-controller) # вторичная линия источника синхронизации

Маршрутизатор (config) # network-clock input-source 50 контроллер t1 0/3/0

Маршрутизатор # показать синхронизацию сетевых часов

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобальное): 300 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

Внутренний NA NA / Dis 251 QL-SEC NA NA

* T1 0/2/0 NA NA / Dis 1 QL-SEC NA NA

T1 0/3/0 NA NA / Dis 50 QL-SEC NA NA

(В этот момент основной источник синхронизации T1 0/2/0 становится недоступным; например, из-за сбоя сигнала.)

Маршрутизатор # показать синхронизацию сетевых часов

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобальное): 300 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

Внутренний NA NA / Dis 251 QL-SEC NA NA

T1 0/2/0 NA NA / Dis 1 QL-FAILED NA NA

* T1 0/3/0 NA NA / Dis 50 QL-SEC NA NA

(В этот момент основной источник синхронизации T1 0/2/0 снова становится доступным.)

Маршрутизатор # показать синхронизацию сетевых часов

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобальное): 300 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

Внутренний NA NA / Dis 251 QL-SEC NA NA

* T1 0/2/0 NA NA / Dis 1 QL-SEC NA NA

T1 0/3/0 NA NA / Dis 50 QL-SEC NA NA

Настройка таймера ожидания восстановления

Используйте глобальную команду network-clock wait-to-restore timer , чтобы указать, как долго маршрутизатор ожидает, прежде чем включить основной источник синхронизации в процесс выбора часов; например, после того, как сбой сигнала повлиял на основной источник синхронизации.

КРАТКИЕ ДЕЙСТВИЯ

1. сетевые часы, ожидание восстановления таймер глобальный

2. показать синхронизацию сетевых часов

ПОДРОБНАЯ ИНФОРМАЦИЯ

Шаг 1

сетевые часы, ожидание восстановления таймер глобальный

Маршрутизатор # network-clock wait-to-restore 500 global

Изменяет период ожидания восстановления.Значение по умолчанию для таймера составляет 300 мс.

Шаг 2

показать синхронизацию сетевых часов

Маршрутизатор # показывает синхронизацию сетевых часов

Проверяет, что для периода ожидания восстановления установлено правильное значение.

Пример: настройка таймера ожидания восстановления

Первая часть этого примера такая же, как показано в разделе «Настройка синхронизации сети в реверсивном режиме».Пример начинается после установки двух источников синхронизации: T1 0/2/0 и
T1 0/3/0. T1 0/2/0 является основным источником синхронизации — он имеет более высокий приоритет, чем источник синхронизации T1 0/3/0.

Реверсивный режим устанавливается для синхронизации сети с помощью команды network-clock revertive .

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

Команда show network-clocks synchronization показывает, что таймер равен 300 секундам. Затем таймаут ожидания восстановления изменяется с помощью команды network-clock wait-to-restore timer . В этом примере время ожидания восстановления установлено на 500 секунд. Вы можете настроить время ожидания восстановления на любое значение от 0 до 86400 секунд. Значение по умолчанию — 300 секунд.

После ввода команды show network-clocks synchronization теперь отображается значение ожидания восстановления, равное 500 секундам.

Маршрутизатор (конфигурация) # , возврат сетевых часов

Маршрутизатор # показать синхронизацию сетевых часов

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобальное): 300 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

Внутренний NA NA / Dis 251 QL-SEC NA NA

* T1 0/2/0 NA NA / Dis 2 QL-SEC NA NA

T1 0/3/0 NA NA / Dis 2 QL-SEC NA NA

Маршрутизатор (config) # network-clock wait-to-restore 500 global

Маршрутизатор # показать синхронизацию сетевых часов

5 февраля, 11:11:42.273 IST:% SYS-5-CONFIG_I: настраивается с консоли с помощью консоли

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобальное): 500 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

Внутренний NA NA / Dis 251 QL-SEC NA NA

T1 0/1/1 NA NA / Dis 50 QL-SEC NA NA

* T1 0/2/0 NA NA / Dis 150 QL-SEC NA NA

Настройка таймера задержки

Используйте команду network-clock hold-off timer , чтобы указать продолжительность ожидания маршрутизатором при выходе из строя основного источника синхронизации перед удалением основного источника синхронизации из процесса выбора часов.

КРАТКИЕ ДЕЙСТВИЯ

1. задержка сетевых часов таймер глобальный

2. показать синхронизацию сетевых часов

ПОДРОБНАЯ ИНФОРМАЦИЯ

Шаг 1

задержка сетевых часов таймер глобальный

Маршрутизатор # задержка сетевых часов 500 глобальный

Изменяет время ожидания задержки.Значение по умолчанию для таймера составляет 300 мс.

Шаг 2

показать синхронизацию сетевых часов

Маршрутизатор # показать синхронизацию сетевых часов

Проверяет, правильно ли установлен период тайм-аута задержки.

Пример: настройка таймера задержки

Команда show network-clocks synchronization показывает, что время задержки составляет 300 миллисекунд (значение по умолчанию).Тайм-аут задержки изменяется с помощью команды удержание сетевых часов 500 global команды. Ввод команды show network-clocks synchronization показывает, что значение задержки теперь составляет 500 миллисекунд.

Маршрутизатор # показать синхронизацию сетевых часов

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобальное): 500 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

Внутренний NA NA / Dis 251 QL-SEC NA NA

T1 0/1/1 NA NA / Dis 50 QL-FAILED NA NA

* T1 0/2/0 NA NA / Dis 150 QL-SEC NA NA

Маршрутизатор # настроить терминал

Введите команды конфигурации, по одной в каждой строке.Закончите CNTL / Z.

Маршрутизатор (config) # задержка сетевых часов 500 global

Маршрутизатор # показать синхронизацию сетевых часов

18 февраля 15: 03: 30.597 IST:% SYS-5-CONFIG_I: настраивается с консоли с помощью консоли

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 500 мс

Ожидание восстановления (глобальное): 500 секунд

Настройка блокировки источника синхронизации

Команда контроллера блокировки набора сетевых часов может быть полезна во время тестирования и отладки.


Примечание Чтобы снять блокировку источника, используйте команду network-clock clear lockout .

КРАТКИЕ ДЕЙСТВИЯ

1. Контроллер блокировки набора сетевых часов [t1 | e1] слот / отсек / порт

2. показать синхронизацию сетевых часов

ПОДРОБНАЯ ИНФОРМАЦИЯ

Шаг 1

контроллер блокировки набора сетевых часов [t1 | e1] слот / отсек / порт

Маршрутизатор # контроллер блокировки набора сетевых часов t1 0/2/0

Устанавливает блокировку источника синхронизации контроллера.

Шаг 2

показать синхронизацию сетевых часов

Маршрутизатор # показать синхронизацию сетевых часов

Показывает, установлены ли часы в реверсивный режим.

Пример: настройка блокировки источника синхронизации

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

Начнем с того, что T1 0/1/1 является основным источником синхронизации, как показано первой командой show network-clocks synchronization . Затем T1 0/2/0 блокируется с помощью команды контроллера блокировки сброса сетевых часов . Команда show network-clocks synchronization показывает, что основным источником синхронизации теперь является T1 0/1/1. В этом примере T1 0/1/1 понижается.

T1 0/2/0 не выбран в качестве основного источника синхронизации — вместо этого выбран внутренний, как показано другой командой show network-clocks synchronization .Затем первоначальный первичный источник синхронизации очищается с помощью команды контроллера очистки блокировки синхронизации сети . Другая команда show network-clocks synchronization показывает, что основным источником синхронизации теперь является T1 0/2/0 (T1 0/1/1 все еще не работает).

Маршрутизатор # показать синхронизацию сетевых часов

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобально): 0 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

Внутренний NA NA / Dis 251 QL-SEC NA NA

* T1 0/1/1 NA NA / Dis 50 QL-SEC NA NA

T1 0/2/0 NA NA / Dis 150 QL-SEC NA NA

Маршрутизатор № контроллер блокировки набора сетевых часов T1 0/2/0

Маршрутизатор # показать синхронизацию сетевых часов

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобально): 0 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

Внутренний NA NA / Dis 251 QL-SEC NA NA

* T1 0/1/1 NA NA / Dis 50 QL-SEC NA NA

T1 0/2/0 NA NA / Dis 150 QL-SEC NA NA

4 февраля, 11:34:36.288 IST:% NETCLK-6-SRC_UPD: Состояние источника синхронизации T1 0/2/0 (установленная блокировка) отправляется для всего процесса выбора.

Маршрутизатор # показать синхронизацию сетевых часов

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобально): 0 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

* Внутренний NA NA / Dis 251 QL-SEC NA NA

T1 0/1/1 NA NA / Dis 50 QL-FAILED NA NA

T1 0/2/0 NA NA / Dis 150 QL-SEC NA NA

Маршрутизатор # контроллер блокировки сброса сетевых часов t1 0/2/0

Маршрутизатор # показать синхронизацию сетевых часов

Символы: En — включить, Dis — отключить, Adis — отключить администратором.

* — выбран источник синхронизации

# — Выбрана сила источника синхронизации

& — Источник синхронизации переключается вручную

Автоматический процесс выбора: Включить

Часы оборудования: 2048 (EEC-Option1)

Задержка (глобальная): 300 мс

Ожидание восстановления (глобально): 0 секунд

Интерфейс SigType Mode / QL Prio QL_IN ESMC Tx ESMC Rx

Внутренний NA NA / Dis 251 QL-SEC NA NA

T1 0/1/1 NA NA / Dis 50 QL-FAILED NA NA

* T1 0/2/0 NA NA / Dis 150 Q

синхронизация заголовков в первую очередь в Bitcoin Core

 Привет всем,

Я считаю, что большое изменение, над которым я работал для Биткойна
Ядро готово к обзору и тестированию: синхронизация заголовков.Короче говоря, он меняет способ обнаружения и загрузки лучшей цепи.
и проверено, с несколькими преимуществами:
* Параллельная загрузка блоков (гораздо более быстрая синхронизация при типичных сетевых подключениях).
* Больше никаких остановленных загрузок.
* Гораздо более устойчивый к неотзывчивым или медленным сверстникам.
* Удаляет класс DoS-атак, связанных с кормящими вас сверстниками
допустимые большие блоки низкой сложности на боковой ветви.
* Снижает потребность в контрольных точках в коде.
* В памяти больше не хранятся сиротские блоки (уменьшение использования памяти во время синхронизации).* Большой шаг к переходу в режим SPV с использованием эталонной кодовой базы.

Исторически этот режим работы был известен много лет (Грег
Максвелл написал описание очень похожего метода в
https://en.bitcoin.it/wiki/User:Gmaxwell/Reverse_header-fetching_sync
в начале 2012 года, но это было известно до этого), но прошло много времени
для рефакторинга этого кода достаточно, чтобы поддержать его.

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

На уровне протокола увеличивает минимально поддерживаемую версию.
для пиров до 31800 (соответствует биткойну v3.18, выпущенному в
декабрь 2010 г.), так как более ранние версии не поддерживали P2P getheaders.
сообщение.

Итак, код доступен как запрос на перенос на github
(https://github.com/bitcoin/bitcoin/pull/4468) или упакован на
http://bitcoin.sipa.be/builds/headersfirst, где вы также можете найти
двоичные файлы для тестирования.Известные проблемы:
* В самом начале синхронизации, особенно до того, как все заголовки будут
обрабатывается, загрузка идет очень медленно из-за ограниченного количества блоков
которые запрашиваются на одноранговом узле одновременно. Политика вокруг этого
потребуются некоторые эксперименты, безусловно, можно улучшить.
* Блоки будут храниться на диске вне очереди (в том порядке, в котором они
получил, правда), что делает его несовместимым с некоторыми инструментами или
другие программы.