Существует ли удаленный, ненадежный биткойн API, который не требует локального хранения чего-либо (заголовки блокчейна/SPV)?

Этот вопрос касается того, как работать с биткойнами через API, не требуя локальной цепочки блоков. Единственный ответ касается JSON API blockchain.info, но похоже, что в отличие от веб-версии blockchain.info, JSON API требует отправки паролей учетных записей на сервер.

Существует ли другой удаленный API, который позволяет выполнять различные операции с биткойнами без ущерба для безопасности — никуда не отправляя приватные ключи, а подписывая транзакции локально? API не должен требовать каких-либо загрузок — SPV не подпадает под эту категорию — но должен быть просто удаленным API для сети биткойнов, который не требует никакого состояния / начальной загрузки от своего клиента.

Если я правильно помню, то Stratum должен был быть этим API. Он когда-нибудь взлетал?

Также на bitciontalk — bitcointalk.org/index.php?topic=144347.0
Я не уверен, как вы хотите, чтобы он был ненадежным, если вы не хотите ничего проверять локально?
@PieterWuille - я готов верить, что удаленный узел мне не лжет (мне нужно тщательно выбрать этот узел). Однако я не хочу, чтобы этот узел знал мои закрытые ключи — вместо этого я подпишу транзакции локально и отправлю подписанный tx на узел.

Ответы (5)

Биткойн-сервер BOP Enterprise — это реализация полного узла с открытым исходным кодом и удаленным (то есть на стороне клиента) кошельком. Сервер загружает цепочку блоков, выполняет транзакцию и проверку блоков и маршрутизирует транзакции, подписанные на клиенте.

Клиент подключается к серверу через шину сообщений. Доступны Java и другие API с дополнительными функциями на стороне клиента. Исходный код: https://github.com/bitsofproof/supernode

Коммерческая поддержка и размещенные экземпляры доступны на http://bitsofproof.com.

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

В ветке bitcointalk есть довольно много ответов . Вот это я считаю оптимальным вариантом:

  1. Использование blockchain.info для запросов
  2. Использование bitcoinj для подписи транзакций
  3. Использование широковещательного API blockchain.info для трансляции транзакций

Этот класс из версии My Wallet для Android должен реализовать эту схему.

Существует простой и настраиваемый репозиторий Git (Node.js).

Ссылка на репозиторий GitHub

Этот код позволяет вам делать такие вещи, как:

  • balance - Получает баланс кошелька.
  • Feas — Получает список текущих комиссий на основе текущей ставки в сети BitCoin.
  • utxo — вывести список неизрасходованных транзакций.
  • pushtx — отправить необработанную транзакцию в блокчейн.

Bitcore-wallet-service от Bitpay, похоже, удовлетворяет вашим условиям, поскольку не требует от вас входа в систему или отправки закрытого ключа.

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

"Сколько у меня денег?"

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

У него нет API, но он с открытым исходным кодом , поэтому, если хотите, вы можете написать для него обертку на python.

SPV по-прежнему требует загрузки заголовков. Я ищу API, который 1. требует, чтобы вы доверяли чему-то (например, что сервер не будет лгать вам относительно того, сколько у вас денег) 2. но это не потребует от вас ничего загружать и 3. не потребует ваших закрытых ключей , так что не сможет украсть у вас.
Итак, вы ищете API, который сделает за вас все, кроме подписи, верно?
API должен включать клиентскую библиотеку, которая подписывает. Удаленный API действительно должен делать все, кроме подписи.
Что вы имеете в виду, что у Электрума нет API? Что тогда предлагает Электрум-сервер ?
@JanusTroelsen Предлагает недокументированный интерфейс.