Как создать дайджест от сырьевой биткоин транзакцию для проверки подписи конкретных входных данных?

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

Входы [ UTXO, необработанные транзакции, input_number ]

Как сделать, чтобы меня проверить подпись для данного конкретного входа?

Как я понимаю, в зависимости от SIGHASH, я бы разобрал всю проводку и замените/удалите некоторые данные. Однако, длина байт, кажется, чтобы сделать весь процесс чрезвычайно сложный.

Выполняет операции segwit сделать все проще? Или есть еще байтов, которые должны быть удалены в зависимости от SIGHASH?

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

+848
Arturo don Juan 23 нояб. 2014 г., 21:46:53
25 ответов

Положить

запустить команду cmd /K в bfgminer -с использованием OpenCL:авто

в пакетном файле.

+982
wookie4747 03 февр. '09 в 4:24

Проект Bitcoin не может быть прекращен как таковой.

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

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

+964
annuska 18 янв. 2013 г., 12:29:48

Можно ли построить систему на биткоин, где:

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

Можно ли на вершине биткоин, или это необходимость проектирования новой системы?

+933
Snowball 16 апр. 2019 г., 3:30:47

В запросе getwork, bitcoind посылает цели, соответствующие значения битов текущего блока. У основных бассейнов послать ту же цель, что и следовало ожидать от bitcoind, сложность "1" цели, или, возможно, что-то еще?

+862
Sally 15 июл. 2010 г., 17:42:28

Да, так, что x=1 и y=количество людей.

+853
Caleb Doucet 27 апр. 2010 г., 23:24:29

Как данные, хранящиеся на Bitcoin?

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

Если данные хранятся в файле, как блокчейн создать файлы, для вставки данных в них, а в каком формате файлы?

Если все это неправда и данных Blockchain существует в памяти, если все узлы пошли вниз, как вы приносите блокчейн обратно?

+822
Yorimitsu 30 мая 2019 г., 22:11:40

Биткоин опирается на проверки вместо доверия. Получение данных только на последних 200 блоков потребует, чтобы ты доверял данных, без возможности проверить это. Сейчас вы можете запустить обрезают узел, который будет хранить только последние 550 блоков на диске, но он изначально загружает и проверяет все. К сожалению работает сокращенного узла не позволит вам увидеть UTXO (баланс) детали адреса вы не владеете; вам потребуется полный узел с номером транзакции и написать парсер блок для этого.

+780
vitus37 25 янв. 2019 г., 0:19:24

Может кто-нибудь объяснить, почему так много биткоин узлов позволяют Блум фильтрации, учитывая, что DoS-атак существуют [1], [2] для таких узлов?

По данным bitnodes.21.ко, сейчас 3879 узлов из общего числа 5515 биткоин узлов Блум фильтрация включена.

Получается, что эти DoS-атаки делаются не хуже по цвету фильтрации, как описано здесь Майк Хирн? Цитирую:

Таким образом, вы можете легко вызвать точно такие же DoS-атаки только с помощью регулярного метода GetData запросы на крупные блоки снова и снова. Вам не нужно Фильтрация по цвету. Если вы не хотите загружать блоки просто не по TCP ACK пакет пакеты и затем плавник за несколько секунд .... данные все были загружены и сидел в буферов отправки.

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

+756
Puneet Rajput 23 июл. 2013 г., 15:49:57

Биткоин графики - отличное место, чтобы проверить и посмотреть, если ваша сделка вне там. Он отображает неподтвержденные транзакции, которые транслировались в сеть. Если сделка не показывают там, то работает Bitcoin с -сканирование опция должна исправить вещи.

+748
Atrinity 4 окт. 2012 г., 3:26:36

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

Вот полные реквизиты:

В версии 0.3.24, исходный параметр был просто принят в std::вперед (), чтобы пропустить необходимое количество сделок. Если данное значение больше, чем число доступных операций, он будет обтекать, из-за того, как с std::вперед() работает. Я не поняла, то ли заранее() определяется как то на работу, или если это зависит от конкретной реализации в библиотеке, ваша версия была связана против.

Во всяком случае, в версии 0.4, продвижение() вызов функции был осуществлен условный:

если (txByTime.размер() > nFrom) СТД::заранее(это, nFrom);

смысл, чтобы только пропустить некоторые сделки, если количество сделок доступно больше, чем вы пытаетесь пропустить.

Изменение выступил Гэвин Андресен на 12 августа, 2011 в ответ на отчет об ошибке

+726
korkozyabra 29 дек. 2013 г., 17:02:35

Я хочу запустить сервер Электрум и не нужен графический интерфейс. Когда я установить его, я получаю:

Убунту@комп:~$ Электрум на Qt.qpa по.экран: QXcbConnection: не удалось подключиться к дисплей
Не удалось подключиться к любой х дисплея.

Потому что у меня нет X-дисплея, очевидно. Как я могу установить с чисто командной строки?

+671
David Sun 10 авг. 2018 г., 10:16:41

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

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

+619
user3275102 27 мая 2019 г., 11:49:47

Я получаю эту ошибку, когда я печатаю метода getbalance:

ошибка: {"код":-1,"сообщение":"с std::bad_alloc"}

В принципе, я типа метода getbalance и подождите около 2 минут, и эта ошибка появляется, наконец.

Что это значит?

+617
Vasilis D 7 июн. 2018 г., 2:29:43

Как случайный пример, идентификатор транзакции:

114be7fea4d3dd0cf2e88a8fa9a56d4ea741efbabd07d61d08cf0810be2254fd

Также хэш, который был использован как "хэш вещи с надписью" для "подписи" для этой сделки?

+596
Aoi Amanthul 11 авг. 2016 г., 4:59:17

Нашел это на их сайте. Они планируют сжечь 100 миллионов монет каждый квартал путем сжигания 20% своей прибыли в БНБ. В настоящее время сжег 2 миллиона до сих пор.

1 квартал: https://support.binance.com/hc/en-us/articles/115002205552-Binance-1st-Quarter-BNB-Burn-Event

В2: https://support.binance.com/hc/en-us/articles/360000012892-Binance-Coin-Burn-in-2018-Winter

+589
natali1709 19 нояб. 2014 г., 21:03:43

Да, проверить этот отличный пост.

+553
Justin Lufkin 12 нояб. 2011 г., 11:39:34

Im, используя библиотеку bitcoinj и blockcypher API для создания кошельков и транзакций в биткоин тестовом режиме. Я получаю эту ошибку при отправке подписанной сделки.

сообщение "Error": "ошибка при проверке генерируется транзакции: ошибка запуска сценария для ввода 0 ссылок 1eaf42445d037370ed5b37dd2e5a4a4f672aabb659e200d81a5f6fe9545e52d7 в 0: сценарий не был успешно проверен."

Итак, сначала я создаю новую транзакцию, то в ответ я получаю это

{
 "Техас": {
 "block_height": -1,
 "block_index": -1,
 "хэш": "a3d9881f64e987bf700436118da676745629b29aaec00ceee658f03a61330987",
 "адреса": [
"mje2F5tdP5t2R5sWyPGdTD2EycbBJqKGtc",
"mgKGQMT9TB9XjhpVZCUsSNNQV5pWF6yqsb"
],
 "итого": 11320617,
 "сборы": 4700,
 "размер": 119,
 "преферанс": "высокий",
 "relayed_by": "82.117.202.34",
 "получил": "2019-01-31T13:30:07.624499085 з",
 "Сильвер": 1,
 "double_spend": ложные,
 "vin_sz": 1,
 "vout_sz": 2,
 "подтверждений": 0,
 "входы": [
{
 "prev_hash": "1eaf42445d037370ed5b37dd2e5a4a4f672aabb659e200d81a5f6fe9545e52d7",
 "output_index": 0,
 "output_value": 11325317,
 "последовательности": 4294967295,
 "адреса": [
"mje2F5tdP5t2R5sWyPGdTD2EycbBJqKGtc"
],
 "script_type": "оплата-по умолчанию-хэш",
 "возраст": 1453583
}
],
 "выходы": [
{
 "ценность": 5000,
 "сценарий": "76a91408c24023f9172ab0042ea2bef2b077517e0b826288ac",
 "адреса": [
"mgKGQMT9TB9XjhpVZCUsSNNQV5pWF6yqsb"
],
 "script_type": "оплата-по умолчанию-хаш"
},
{
 "значение": 11315617,
 "сценарий": "76a9142d36b60f3dd37f3cca06876846a597bfdf2cf63f88ac",
 "адреса": [
"mje2F5tdP5t2R5sWyPGdTD2EycbBJqKGtc"
],
 "script_type": "оплата-по умолчанию-хаш"
}
]
},
 "на предмет заключения": [
"389a2e15c404b2c2a85ce4d68101fc568f55e42df3a4c1c97fdeaa7816cee29c"
]
}

Я возьму это "на предмет заключения" хэш, а затем Подписаться на мой приватный ключ от кошелька.

частная весело getSignedTransactionHex(transactionToSign: строка): строка {
 Вэл кошелек = walletService.loadWalletFromFile("dsadasd")

 ВАР закрытый ключ: типа BigInteger? = нуль
 кошелек.importedKeys.по каждому элементу {
 закрытый ключ = это.привчной
 открытый ключ = это.publicKeyAsHex
 Системы.из.код println("открытый ключ: $открытый ключ")
}

 ecKeyWif Вэл = Эке.fromPrivate(закрытый ключ)
 Вэл wifAsString = ecKeyWif.getPrivateKeyAsWiF(walletService.getTestNetwork())

 Вэл ДПК = DumpedPrivateKey.fromBase58(нуль, wifAsString)
 Вэл эке = ДПК.ключ

 тестовом режиме Вэл = walletService.getTestNetwork()
 Вэл проверить = эке.getPrivateKeyAsWiF(тестовом режиме)

 хэш-Вэл = Sha256Hash.обертывание(transactionToSign)
 подпись Вэл = эке.знак(хэш)

 Валь РЭС = подпись.encodeToDER()

 возвращение РЭС.toHexString()
}

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

{
 "Техас": {
 "block_height": -1,
 "block_index": -1,
 "хэш": "a3d9881f64e987bf700436118da676745629b29aaec00ceee658f03a61330987",
 "адреса": [
"mje2F5tdP5t2R5sWyPGdTD2EycbBJqKGtc",
"mgKGQMT9TB9XjhpVZCUsSNNQV5pWF6yqsb"
],
 "итого": 11320617,
 "сборы": 4700,
 "размер": 119,
 "преферанс": "высокий",
 "relayed_by": "82.117.202.34",
 "получил": "2019-01-31T09:39:33.07827321 з",
 "Сильвер": 1,
 "double_spend": ложные,
 "vin_sz": 1,
 "vout_sz": 2,
 "подтверждений": 0,
 "входы": [
{
 "pre1v_hash": "1eaf42445d037370ed5b37dd2e5a4a4f672aabb659e200d81a5f6fe9545e52d7",
 "output_index": 0,
 "output_value": 11325317,
 "последовательности": 4294967295,
 "адреса": [
"mje2F5tdP5t2R5sWyPGdTD2EycbBJqKGtc"
],
 "script_type": "оплата-по умолчанию-хэш",
 "возраст": 1453583
}
],
 "выходы": [
{
 "ценность": 5000,
 "сценарий": "76a91408c24023f9172ab0042ea2bef2b077517e0b826288ac",
 "адреса": [
"mgKGQMT9TB9XjhpVZCUsSNNQV5pWF6yqsb"
],
 "script_type": "оплата-по умолчанию-хаш"
},
{
 "значение": 11315617,
 "сценарий": "76a9142d36b60f3dd37f3cca06876846a597bfdf2cf63f88ac",
 "адреса": [
"mje2F5tdP5t2R5sWyPGdTD2EycbBJqKGtc"
],
 "script_type": "оплата-по умолчанию-хаш"
}
]
},
 "на предмет заключения": [
"389a2e15c404b2c2a85ce4d68101fc568f55e42df3a4c1c97fdeaa7816cee29c"
],
 "подписей": [
"30440220236ab8fddb66f9ae008e17e05795ed37394e07f0f1df4325d30d03aac4fac56a02200f45f4eb9174c58d419df3d98ad045a4f21cc35b1a5912c3df63e336e7ce59c4"
],
 "публичные ключи": [
"0268768af434d44d700e0578bbbd89ad7100ee83f86430310fec3b7931468c1b9e"
]
}

Я делаю что-то неправильно, наверное, у вас есть какие-либо предложения?

+434
James Jackson 11 мая 2012 г., 4:27:07

У меня есть немного биткоинов задерживаясь в старый кошелек биткоин (около 2011). Я просто восстановил его из резервной копии, но я не могу показаться, чтобы загрузить его в биткоин-интервала QT.

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

Если, вместо этого, я закрыл его, скопировать целиком из моих старых .биткоин папку, а потом заново открыть, я сразу же обработка выхода онлайн / оффлайн. Я сильно облажалась?

+386
Bank BTC 23 дек. 2011 г., 17:21:05

В этом: http://arxiv.org/pdf/1403.6676.pdf бумага Кристиан Декер и Роджер Wattenhofer описать их использования системы для мониторинга сети Bitcoin за неудачных сделок.

Некоторые инструменты доступны на https://github.com/cdecker?tab=repositories .

Хотя и не база данных сама по себе, эти инструменты могут быть полезны для создания такой базы данных.

+356
vamsiampolu 25 янв. 2016 г., 22:05:20

Вам нужно подключить к узлу, который имеет:

  • Протокол RPC включена
  • имя пользователя и пароль известны
  • клиент IP-адресов в белый список, используя выбрать
  • маршрутизатор имеет свои переадресация портов включена.

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

+356
mariad 25 февр. 2012 г., 1:34:22

Создайте папку "data" в папке приложения.

В пакетный файл, развивать этот код:

bitcoin-qt.exe -переменной datadir=./сведения/
+309
daniel daniel 11 нояб. 2019 г., 13:08:56

Я принял ответ Тим С и снял больше материала, пока он установлен на одной странице для меня:

https://gist.github.com/dooglus/3b1fcbc2449063a1c3f7f1003ca26447

#! /usr/Бен/ОКР питона

точки класса(объект):
 деф __инит__(самостоятельная, _x, _y, _order = нет): самовывоз.х, самовывоз.г, самовывоз.заказ = _x, _y, _order

 деф расч(самовыдвижение, сверху, снизу, other_x):
 л = (топ * inverse_mod(внизу)) % Р
 Х3 = (л * л - я.х - other_x) % годовых
 Точка возврата(Х3, (л * (самовыдвижение.х - Х3) - самообслуживание.г) % годовых)

 деф двойной(самовыдвижение):
 если self == бесконечность: возвращение бесконечности
 вернуться самостоятельно.калькулятор(3 * самовыдвижение.х * самостоятельно.х, 2 * самовыдвижение.г, самовывоз.х)

 деф __добавить__(самовыдвижение, другое):
 если другие == бесконечность: вернуть себя
 если self == бесконечность: возвращение других
 если самостоятельно.х == другие.х:
 если (собственн.г + другие.г) % г == 0: возвращение бесконечности
 вернуться самостоятельно.двойные()
 вернуться самостоятельно.тепловычислитель(другие.г - я.y, другие.х - я.X, другие.х)

 деф __ООО__(самовыдвижение, е):
 если самостоятельно.заказ: е %= собственн.заказ
 если e == 0 или self == бесконечность: возвращение бесконечности
 результат, м = бесконечность, собственн
 в то время как е:
 если E&1: результат += м
 Е М = Е >> 1, вопрос.двойные()
 возвращаемый результат

 деф __ул.__(самовыдвижение):
 если self == бесконечность: возвращение "бесконечность"
 возвращение "04 %х %х" % (самовыдвижение.х, самовывоз.г)

деф inverse_mod(а):
 если a < 0 или >= Р: А = а % п
 С, D, ОК, ВК, уд, ВД = а, р, 1, 0, 0, 1
 в то время как C:
 вопрос, С, D = divmod(D, С) + (с,)
 УЦ, ЭП, уд, ВД = ад - м*НЯК, ВД - М*ВК, ОК, ВК
 если UD > 0: ответный уд
 возвращение уд + п

п, бесконечность = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffffffffffffffffffffffffefffffc2fl, точка(нет, нет) # кривая secp256k1
г = точка(0x79BE667EF9DCBBAC55A06295CE870B07029bfcdb2dce28d959f2815b16f81798l, 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8l,
0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfebaaedce6af48a03bbfd25e8cd0364141l)
секрет = 0x18E14A7B6A307F426A94F8114701E7c8e774e7f9a47e2c2035db29a206321725l
привчной печати ': %х\п по умолчанию: параметр %s' % (секретная, г * секрет)

Производит этот выход:

 привчной: 18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725
 по умолчанию: 04 50863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352 2cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6

Я могу почти понять, как это работает сейчас. :)

Описание точка умножение на Википедии было полезно для понимания, где л значения из. л расшифровывается как "лямбда".

+208
esea123 3 февр. 2018 г., 17:21:57

Ответ Ллойда, используя блокчейн звучит как лучший, если вы еще не купили ваучеры Ukash.

Если у вас нет ваучера, то альтернативой является депозит через Ukash на VirWoX, затем преобразовать в SLL, потом на BTC. Я просто попробовал его. Это было быстро и легко, но я работаю, что я закончил тем, что платил ~£5 в операционные издержки на оригинал ваучера стоимостью £20, так что его не очень эффективно.

Существуют также ограничения на VirWoX, что вы можете только конвертировать весь Гбит / с и вы должны купить минимум 0.2 БТЦ. Есть 15% депозита на систему Ukash, которая с £10 ваучер оставляет вас с £8.50 - 50р из которых не могут быть использованы из-за ограничений фунтов стерлингов. В зависимости от обменного курса £8 может не быть оборотоспособные, если он стоит меньше, чем 0.2 БТЦ. (Вы уже догадались, что я экспериментировал с £10 ваучер Ukash потом пришлось пойти и купить еще одну).

+168
theenigma017 24 янв. 2017 г., 8:49:23

Получив блок, блока проверки метки времени осуществляется здесь:

https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L3263-L3270

Вопрос 1: как для второй проверки (блок-метка слишком далеко в будущем), что мешает Шахтеру вещания блоке, который возле ограничить в будущем и то, что некоторые из узлов принимаем блоке, а некоторые другие узлы отклонить заблокировать?

Q2: если часть сети принимает блок и другие части сети отвергает блоке (т. е. не записывать заблокировать его blocktree из-за неправильные метки времени), сеть может оправиться от этого никак?

+156
Greeneco 17 окт. 2010 г., 8:36:39

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

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

https://electrum.org/tutorials.html#switching-to-electrum

+116
Andrija Sucevic 25 дек. 2010 г., 0:04:54

Показать вопросы с тегом