Каковы плюсы и минусы варианта txindex?

Я читаю «Освоение биткойнов», написанное Андреасом, и я нашел это объяснение о «опции txindex».

Индекс базы данных транзакций и параметр txindex

По умолчанию Bitcoin Core создает базу данных, содержащую только транзакции, связанные с кошельком пользователя. Если вы хотите получить доступ к любой транзакции с помощью таких команд, как gettransaction, вам необходимо настроить Bitcoin Core для создания полного индекса транзакций, что можно сделать с помощью параметра txindex. Установите txindex=1 в файле конфигурации Bitcoin Core.

Я не уверен, в каких ситуациях я должен включить эту опцию. Насколько я понимаю, я могу установить txindex=0, использую ли я bitcoindБиткойн просто как инструмент передачи, чтобы я мог сохранять данные и время для синхронизации данных блокчейна. В противном случае, если я намерен создать сайт исследования блоков, такой как Blockchain.info , мне нужно установить txindex=1.

Правильно ли я понимаю это?

Ответы (4)

Если вы используете Bitcoin Core только для личного использования, вам, вероятно, не нужна эта -txindex=1опция. Но если вы используете биткойн-ядро для разработки или какого-либо анализа цепочки блоков, вам нужно настроить -txindex=1возможность получения данных транзакций для любой транзакции в цепочке блоков.

Компромисс заключается в том, что хранение индекса немного медленнее, но позволяет вам делать такие вещи, как:

bitcoin-cli getrawtransaction aec2729f5e46750b310b6feadcf853098aa86df74f93322a701c29cd68b22568 

(где aec2729f5e46750b310b6feadcf853098aa86df74f93322a701c29cd68b22568ID транзакции, которая никак не влияет на ваш кошелек).

Кроме того, если вы некоторое время запускали свой клиент, но не txindex=1устанавливали его, создание индекса может занять несколько часов. Если вы хотите восстановить, запустите с -reindexопцией.

♦ Большое спасибо за быстрый ответ. Я понял. Я ожидал, что смогу сэкономить много времени на синхронизацию блокчейна, но это было бы неправдой, насколько я прочитал ваш ответ.
Вызывает ли установка txindex=1 или reindex=1 новую загрузку? Сеть продуктов настолько велика, что я хотел бы избежать этого, если это возможно.
@SteveHibbert нет, он не загружает данные повторно, потому что у вас уже должны быть данные на диске, он просто повторно обрабатывает имеющиеся у вас данные. Тем не менее, это все еще требует времени.
@ StephenM347 Отлично, спасибо за это, очень обязан.

По умолчанию -txindex=0Bitcoin Core не хранит никаких данных на уровне транзакций, кроме тех, которые

  • в мемпуле или наборе реле
  • относящиеся к адресам в вашем кошельке
  • относящиеся к вашим адресам "только для просмотра"

Если для txindex установлено значение true (1), Bitcoin Core поддерживает индекс всех когда-либо произошедших транзакций, которые вы можете запросить с помощью метода удаленного вызова процедур (RPC) getrawtransactionили вызова RESTful API get-tx .

Для нескольких популярных программ-кошельков и «обозревателя блоков» требуется расширение -txindex=1. Обратите внимание, что txindexэто не меняет поведение однорангового интерфейса Биткойн.

Забавно, потому что я искал это в Google и обнаружил, что читал ответ, который был совершенно неправильным. К моему удивлению, когда я дошел до конца, я увидел собственное имя! Я просто переписал свой ответ.
Биткойн-ядро поддерживает данные на уровне транзакций для всех неизрасходованных средств, независимо от того, принадлежит ли адрес вам или нет. В противном случае он не сможет проверять входящие транзакции.
@kaykurokawa: я точно не знаю, что входит в «набор реле», но эта терминология постоянно используется в документации для разработчиков на bitcoin.org. Конечно, он должен включать неизрасходованные средства, но что там еще?
ах, я вижу, я не знал об этом термине.
@chrisamesen Это действительно круто - мне не приходило в голову, что исправление вики-информации также работает с вашим прошлым и будущим «я».

Кроме того, txindex=1 раньше требовался, если вы хотели использовать LND (сетевой демон Lightning). См. https://github.com/lightningnetwork/lnd/pull/751 .

@Janus: я отклонил ваше редактирование, поскольку оно полностью меняет содержание ответа. Вам лучше добавить новый ответ, чтобы упомянуть ElectrumX.

В дополнение к другим ответам txindex=1требуется, если вы хотите использовать свой кошелек с Counterparty.

Инструкции по установке см. на странице https://github.com/CounterpartyXCP/counterparty-lib .