Привязан трансфер от частных блокчейн для sidechains - вопрос

Я пытаюсь сделать прищепками передачи от одного моего частного блокчейна к sidechains, используя sidechain-manipulation.py (https://github.com/ElementsProject/elements/blob/alpha/contrib/sidechain-manipulation.py)

Я сделал успешного создания адрес и отправить к боковой цепи после выполнения необходи-мые изменения в боковой цепи chainparams(в настоящее время настроен только на главной и Testnet)

Пока я пытаюсь утверждать в боковой цепи я получаю следующую ошибку

Обратная трассировка (самый недавний призыв последнего):
 Файл "./contrib/sidechain-manipulation.py" линия 176, в <модуль>
 txid = сайдчейна.sendrawtransaction(res_tx)
 Файл "/usr/local/lib/python2.7/dist-packages/bitcoinrpc/authproxy.py", строка 140, в __звоните__
 поднять JSONRPCException(ответ ["ошибка"])
JSONRPCException: -26: 16: обязательные-скрипт-проверить-флаг-не получилось (скрипт не операцию OP_CHECKSIGVERIFY)

Получаю следующую ошибку от вызова RPC:
{у'message': у'16: обязательные-скрипт-проверить-флаг-не получилось (скрипт не операцию OP_CHECKSIGVERIFY)', у "кодекс": -26}

Я вижу следующие строки в иске-на-sidechains sidechain-manipulation.py,

 # Может понадобиться для расчета scriptSig здесь
 secondScriptSig = "1"

На мой вопрос, что это secondScriptSig ?!?! Как это соотносится с withdrawKeys?

+211
Sevenate 29 нояб. 2016 г., 21:01:16
23 ответов

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

+897
Nguyen 03 февр. '09 в 4:24

Мой вопрос заключается в следующем: как именно протокол слоя распределять "работу", чтобы шахтеры? Более конкретно, поскольку добыча может быть по сравнению (во многих отношениях), чтобы "взломать" криптографический хэш (т. е. хеширование случайные входы, пока, по счастливой случайности, случайный входной сигнал соответствует желаемого результата), не было смысла отслеживать возможные решения представлены и утверждены как недопустимый для конкретного блока, и чтобы хоть как-то общаться, что бы шахтеры так-же работа не делается снова и снова?

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

Как финал, полу-недетский вопрос о последствиях хранение решений: скажем, бассейн хранится каждое решение это никогда не получается, учитывая массивный размер сети Bitcoin, это не в конечном итоге становятся статистически значимыми (с точки зрения юзабилити) базу SHA256 и столкновений? И в конце концов, могли бы достаточно данных, чтобы придумать деривации для SHA256? Как минимум, может в бассейн со злым умыслом временно отвлечь вычислительной мощности не подозревающих шахтеров взламывать основе SHA256 и ТЛС подписей или PGP открытый ключ? Особенно бассейн, который также контролировал аппаратное и программное обеспечение на большинстве ее устройств (например, Antpool).

+843
Baer 8 дек. 2017 г., 17:50:39

Скачать страницу на биткоин сайте перечислены два клиента для платформы Windows. Оба клиента являются 32-разрядное двоичное.

Под управлением 64-разрядной версии Windows на многоядерный процессор, мне интересно, действительно ли 64-разрядное двоичное существует. Так что ... есть 64-разрядный порт с Bitcoin-Qt для Windows там?

+815
user121028 27 мая 2014 г., 2:14:53

Вы просто взглянула на то, что один субъект этот веб-сайт говорит о сказано в очень общих чертах. Есть и другие, которые по 256 бит просто сказать, например "> 2030" без указания верхнего предела. Потому что это неизвестно.

Вы не можете просто сказать, что с уровнем n бит является безопасной и ECDSA с N-1 бит нет. Есть много, чтобы быть приняты во внимание, как на эллиптических кривых используется, или стимулы и ресурсы злоумышленника.

Нельзя просто перебрать свой путь к 256-битным ключом. Нужно найти уязвимость умный способ. Пока этого не произойдет, Bitcoin-это безопасно. И никто не сможет предсказать, не говоря уже, когда это произойдет (если это произойдет) пока не окажется возможным или оказались неосуществимы.

+780
HPWD 25 февр. 2013 г., 1:28:40

Закрытый ключ-это число, и вспомнил, как такового. Он может быть создан думала, что различных средств (как HD-кошельки, детерминированные поколение, от BIP39 семян, или случайно). Он обычно хранится как 32-байтовый массив.

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

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

Закрытый ключ никогда не покидает ваш компьютер/бумажник/приложение. Адрес общественности.

+709
user71651 29 июн. 2013 г., 17:03:23

также я думаю, что тот же процесс описывается в https://multibit.org/help_importingPrivateKeys.html

это не работает для меня сначала, но я изменил собственный формат ключа к Bitcoin-Qt в формате вместо Base58 и это сработало.

+643
Barbara Gay Davis 13 февр. 2013 г., 4:27:36

Биткоин имеет преимущество сетевого эффекта. Подробнее здесь:

+595
sinemaxxx 4 дек. 2016 г., 4:37:21

Я хочу лучше понять пути биткоин-транзакции. А знакомые общие настройки (отправка платежей, проверка с помощью вашего закрытого ключа, каждый в сети может убедиться, что ваша сделка будет исправить, используя ваш публичный ключ, добыча начнется, кто-то находит код, то транзакция будет включена в блокчейн,...) Однако, есть блоки отсутствуют: Можно ли (экс-пост), чтобы вернуться из путешествия моей транзакции через сеть (узел, в котором он прибывает и последующего распространения среди других узлах)? Мне интересно, просто для некоторых наглядных причин, чтобы узнать, что произошло, пока моя транзакция появляется в сырых mempool, скажем, chainquery.

+592
Paroxysmos 13 мар. 2019 г., 8:14:52

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

Что-то вроде:

Техас 35779d11b2c5aedc1ada50aaa33aafb53ccc07dae71e6d18a35a0ccb872a0efa, Bitcoin блок 342508 

Будет работать как цитата.

+587
StaceyH 9 янв. 2019 г., 18:19:09

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

+574
Deltabeta1997 10 апр. 2015 г., 10:51:46

Этот документ строго доказывает, что Bitcoin может достигнуть консенсуса при условии ограниченного времени доставки сообщения:

Сообщений в почтовом ящике могут быть поставлены в любом порядке, и в любое время, за исключением того, что максимальная задержка ∆

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

Tendermint бумаги утверждает, что она может работать на условиях частичной синхронно предположение (из ДЛС бумаги):

Там предполагается неизвестной верхней границы ∆ на время сообщения должны быть доставлены.

Настройка является более общим в том, что верхняя граница ∆ здесь неизвестно.

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

+417
Rafo 31 авг. 2017 г., 11:09:49

CashAddress.На GitHub.Ио поддерживает конвертацию тестовом режиме адреса.

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

Или, вы можете использовать "usecashaddr=0" на вашем узле.

+383
Marsh Laird 18 июл. 2015 г., 15:09:04

Java-это тааааааак гораздо проще, чем c++. Интересно, почему в 2008 году люди решили пойти, а не с C++. Это потому, что Сатоши знал только с++?

И в дополнение к этому вопрос, есть заметное криптовалюты реализована на Java с нуля?

+356
Fil235 22 мая 2011 г., 20:03:41

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

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

Этот кусок отладки.журнал расскажет вам, что есть 3 получено сделок (отдельных операций, не входящих в блок), ссылки на некоторые материалы, которые не известны. Из-за этого они хранятся в детском бассейне, который растет в результате этого. "mapsz" расшифровывается как "размер карты" (как сирот хранятся в карте) - количество-это всего лишь числа детей-сирот вспомнили.

+335
holik 26 сент. 2019 г., 6:35:05

Я раздвоился ума https://github.com/CryptoCoderz/INSN из GitHub, изменилось бытие хэши, заминировано, и отослано несколько монет, между двумя локальный кошельки. Когда я пытался отправить сообщение с первого адреса на второй адрес я получаю эту ошибку:
Ошибка: SecureMsgEncrypt: не может получить открытый ключ по адресу назначения.
Как это исправить? Я пытался вручную вставить открытый ключ, но ничего, все равно та же ошибка. Пожалуйста, помогите мне!

+308
mkll 19 апр. 2013 г., 20:45:34
 кривой ВАР = ECNamedCurveTable.GetByName("кривая secp256k1");
 ВАР domainParams = новый ECDomainParameters(кривая.Кривой, кривой.Г, Кривой.Н кривой.Ч, кривая.GetSeed());
 SecureRandom отобрать ВАР = новый SecureRandom отобрать();
 ВАР keyParams = новый ECKeyGenerationParameters(domainParams, SecureRandom отобрать);
 генератор var = новый ECKeyPairGenerator("уровнем");
генератор.Инит(keyParams);
 ВАР ключей = генератор.GenerateKeyPair();
 Н.закрытый ключ = ключей.Частные ECPrivateKeyParameters;
 Н.открытый ключ = ключей.Публичных как ECPublicKeyParameters;
+288
Eda Gordoncillo 12 нояб. 2012 г., 13:22:15

В сети освещения, баланс публично объявил в реальном времени?

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

Но, в случае, если баланс может раскрыть личную информацию в сеть..

Я не нашел ответа в документации болта.

Спасибо.

+264
lonelysama 1 авг. 2016 г., 17:58:48

Я дал мой друг БТЦ (т. е. отправил в их адрес) для торговли вместе со своими на прошлой неделе БТЦ. Я вдруг беспокоюсь о налогах (в США). Если прямо сейчас, они дают мне ровно столько, БТЦ, как я дал им, существуют ли налоговые последствия? Могу ли я продать БТЦ после > в год и платить 15% налога на прирост капитала или как там, или есть какие-то краткосрочные держать осложнение, и надо ли платить больше?

+214
J3D1Meist4 22 апр. 2018 г., 8:57:57

Обзор

Следующие сделки: 0200000000010121c787a1ca54292403d4200d6953ee0edcd4a1d33721a09938f5d5e067e9c70600000000232200205d577278a6dfefffaa4e04ef23fd1172e923f9e7b4949f991b3d7f2af89abb83ffffffff01993a00000000000017a9144920d433d073267b904ae23df3b15ea47aec950387040047304402202c9946f1d50a974f3b7cf24a99002f3f3ca18af7b54939bf2ec1acf6f5528b07022029aaa63fde914735b8e92c202ce3d4b02ea8ded1d2b47821670dd3c6d8dcb02b0147304402201e5e933e674f7e4597c1066b48cdb4ca1c7382235b53d411608c2e3a22a31df7022022fc673d696987146effcbb9ce43265ab9ee19da05eaef0bb35ced729fe9592501695221036ef3ee62456676a49b3087df3f0d804eb09bfcfa95ca606465bee5cfeab4da98210386518595790f10fa1915bb119a0b41d96a380eeb3f3a76ae0694acc9fd2fb333210371d090dd98316a9f8f63c1d925b42cf157f265d1eff84b65620629914b43019c53ae00000000

когда перешли к sendrawtransaction(), выдает следующую ошибку:
код ошибки: -26 сообщение об ошибке: необязательные-скрипт-проверить-флаг (подписи должны быть равны нулю для не удалось проверить(мульти)сиг работа) (код 64)

Биткоин источник, кажется, предполагают сделки отклонять нестандартные: моя сделка была основана на застройщика пример https://bitcoin.org/en/developer-examples#p2sh-multisig я думал, будет стандартный, и ошибка происходит в тестовом режиме, когда я думал, что обзоры isStandard() проверяет, выключены.

Я ищу понимание, где я умудрился ошибиться!

Деталь: код, выходные данные, файлы конфигурации, версии, расшифровать транзакции, выкупить раскодировать скрипт

Я переписал пример разработчика как самодостаточный скрипт, который сбрасывает регтест известного состояния, то работает через сниппеты, или попытки работать в тестовом режиме. При необходимости, звонки были скорректированы с учетом изменения API, таких как signtransactionwithkey против signtransaction:

#!/бин/Баш
#
# Этот код для реализации p2sh-multisig пример, как отрабатывается по
# https://bitcoin.org/en/developer-examples#p2sh-multisig
#
Эхо "[настройка запуска ...]"
Отладки=истина
USE_REGTEST=значение false # если false, использовать тестовом режиме
ADDRESS_TYPE="p2sh-segwit"
BITCOIND_HOMEDIR="/домашний/bitcoind"
BITCOIND_CONFDIR=$BITCOIND_HOMEDIR"/.биткоин"
если [[ "$USE_REGTEST" = "правда" ]]
тогда
AMOUNT0="49.99900000"
 Сумму 1="10.00000000" # из примеру отличается упредить поплавок и проблемы округления 
AMOUNT2="9.99800000"
REGTEST_PARAM="-регтест"
REGTEST_DIR=$BITCOIND_CONFDIR"/регтест"
BITCOIND_CONFFILE=$BITCOIND_CONFDIR"/регтест.конф"
 TEST_SPEND_FROM_NONCOINBASE=правельно#, если это имеет значение, что средства были поколений
еще
 AMOUNT0="49.99900000" # неиспользованный в тестовом режиме
Сумму 1="0.00030001"
AMOUNT2="0.00015001"
REGTEST_PARAM=""
REGTEST_DIR="/dev/нуль"
BITCOIND_CONFFILE=$BITCOIND_CONFDIR"/тестовом режиме.конф"
TEST_SPEND_FROM_NONCOINBASE=ложь
интернет
TXFEE="0.00013000"
BITCOIN_CLI="/usr/местные/Бен/биткоин-Кинк -конф="$BITCOIND_CONFFILE" "$REGTEST_PARAM
BITCOIN_DAEMON="/usr/местные/Бен/bitcoind -конф="$BITCOIND_CONFFILE" "$REGTEST_PARAM" -демон"
TEST_PUBLIC_KEYS_ONLY=правельно # открытые ключи против адресам 

#
# Вам регтест сети известного состояния: остановка, если идти, разорвать регтест каталоги,
# рестарт и создать первый 101 блоки, чтобы получить 50btc в фонды. Дайте короткий срок
# разрешить уборку и т. д. В 101 важен, так как он ограничивает наш баланс на 50btc
если [[ "$USE_REGTEST" = "правда" ]]
тогда
 $BITCOIN_CLI остановить
 сон 1
 РМ -РФ $REGTEST_DIR && $BITCOIN_DAEMON
 сон 2
 $BITCOIN_CLI генерировать 101 >/dev/нуль
интернет

#
# Я вижу ссылки, такие как https://github.com/bitcoin/bitcoin/issues/7277
# что нельзя отправить средства из фонда по адресам p2sh за регтест.
# Этот код для отправки практически весь баланс такой, что позже потратить на
# фонд p2sh адрес не может, но не последние адреса
# Игнорируется в тестовом режиме
если [[ "$TEST_SPEND_FROM_NONCOINBASE" = "правда" ]]
тогда
 $NONCOINBASE_ADDRESS=`BITCOIN_CLI getnewaddress $ADDRESS_TYPE`
 BITCOIN_CLI$TXID=`sendtoaddress $NONCOINBASE_ADDRESS $AMOUNT0`
 если в $debug
тогда
 Эхо "отправка средств Coinbase чтобы новый ключ"
 Эхо "[NONCOINBASE_ADDRESS]: "$NONCOINBASE_ADDRESS
 Эхо "[TXID ]: "$TXID
 Эхо "-----"
интернет
интернет

Эхо "[...создавать и финансировать 2-из-3 multisig транзакции...]"
#
# Создание адреса мы будем использовать
NEW_ADDRESS1=`$BITCOIN_CLI getnewaddress $ADDRESS_TYPE`
$NEW_ADDRESS2=`BITCOIN_CLI getnewaddress $ADDRESS_TYPE`
NEW_ADDRESS3=`$BITCOIN_CLI getnewaddress $ADDRESS_TYPE`
если [[ "$отладка" = "правда" ]]
тогда
 # Пример говорит адресами начать с м, этот код видит их начать
 # с 2. Проблема?
 Эхо "создание нового адреса:"
 Эхо "[NEW_ADDRESS1]: "$NEW_ADDRESS1
 Эхо "[NEW_ADDRESS2]: "$NEW_ADDRESS2
 Эхо "[NEW_ADDRESS3]: "$NEW_ADDRESS3
 Эхо "-----"
интернет

#
# Получить один открытый ключ - не знаю, почему. Чтобы доказать, что мы можем
используйте # любой адрес или открытый ключ, чтобы создать
# multisigaddress? Чтобы показать, как получить данные для
# перейти к другим? ("все из которых будут преобразованы
# для открытых ключей в активировать сценарий".)
# Примечание: в Примере validateaddress заменены getaddressinfo
если [[ "$TEST_PUBLIC_KEYS_ONLY" = "правда" ]]
тогда
 РВ=`$BITCOIN_CLI getaddressinfo $NEW_ADDRESS1`
 NEW_ADDRESS1_PUBLIC_KEY=`Эхо $РВ | е с/^.*"по умолчанию": "//' | 
 СЭД 'ы/".*$//" # Проверено
 РВ=`$BITCOIN_CLI getaddressinfo $NEW_ADDRESS2`
 NEW_ADDRESS2_PUBLIC_KEY=`Эхо $РВ | е с/^.*"по умолчанию": "//' | 
 СЭД 'ы/".*$//" # Проверено
интернет
РВ=`$BITCOIN_CLI getaddressinfo $NEW_ADDRESS3`
NEW_ADDRESS3_PUBLIC_KEY=`Эхо $РВ | е с/^.*"по умолчанию": "//' | 
 СЭД 'ы/".*$//" # Проверено
если [[ "$отладка" = "правда" ]]
тогда
 Эхо "получить публичный ключ на адрес:"
 если [[ "$TEST_PUBLIC_KEYS_ONLY" = "правда" ]]
тогда
 Эхо "[NEW_ADDRESS1_PUBLIC_KEY]: "$NEW_ADDRESS1_PUBLIC_KEY
 Эхо "[NEW_ADDRESS2_PUBLIC_KEY]: "$NEW_ADDRESS2_PUBLIC_KEY
интернет
 Эхо "[NEW_ADDRESS3_PUBLIC_KEY]: "$NEW_ADDRESS3_PUBLIC_KEY
 Эхо "-----"
интернет

#
# Получить адрес и выкупить скрипт, необходимые для получения средств.
# Примечание: в Примере createmultisig заменены addmultisigaddress
если [[ "$TEST_PUBLIC_KEYS_ONLY" = "правда" ]]
тогда
 РВ=`BITCOIN_CLI$addmultisigaddress 2 "'
[
"'$NEW_ADDRESS1_PUBLIC_KEY'",
 "'$NEW_ADDRESS2_PUBLIC_KEY'", 
"'$NEW_ADDRESS3_PUBLIC_KEY'"
]""
еще
 РВ=`BITCOIN_CLI$addmultisigaddress 2 "'
[
"'$NEW_ADDRESS1'",
 "'$NEW_ADDRESS2'", 
"'$NEW_ADDRESS3_PUBLIC_KEY'"
]""
интернет
P2SH_ADDRESS=`Эхо $РВ | е с/^.*"адрес": "//' | 
 СЭД 'ы/".*$//" # Проверено
P2SH_REDEEM_SCRIPT=`Эхо $РВ | е с/^.*"redeemScript": "//' | 
 СЭД 'ы/".*$//" # Проверено
если [[ "$отладка" = "правда" ]]
тогда
 Эхо "получить p2sh адреса и redeemScript:"
 Эхо "[P2SH_ADDRESS ]: "$P2SH_ADDRESS
 Эхо "[P2SH_REDEEM_SCRIPT]: "$P2SH_REDEEM_SCRIPT
 Эхо "-----"
интернет

#
# На регтест направить средства от первых 50btc блока мы можем провести
# к p2sh_address определено выше.
# В тестовом режиме, отправить часть нашего баланса
если [[ "$USE_REGTEST" != "правда" ]]
тогда
 РВ=`$BITCOIN_CLI settxfee $TXFEE`
интернет
$UTXO_TXID=`BITCOIN_CLI sendtoaddress P2SH_ADDRESS $$сумму 1`
если [[ "$отладка" = "правда" ]]
тогда
 Эхо "p2sh адрес Фонд"
 Эхо "[UTXO_TXID]: "$UTXO_TXID
 Эхо "-----"
интернет

#
# Получить все до сих пор в блоке
# $BITCOIN_CLI генерировать 1 >/dev/нуль

#
#

Эхо "[...выкупить 2-из-3 сделки]"
#
# Получить подробную информацию о финансируемой сделки. Мы хотим, какой выход
# был выходной 10btc, хотя пример показывает, есть только
# один выход.
# Примечание: в примере второй параметр заменен после версии v0.14.0
РВ=`$BITCOIN_CLI getrawtransaction $UTXO_TXID правда
UTXO2_VALUE=`Эхо $РВ | е с/^.*"значение": //' | е с/,.*$//" # Проверено
UTXO2_VOUT=`Эхо $РВ | е с/^.*"Н": //' | Е С/,.*$//" # Проверено
UTXO2_OUTPUT_SCRIPT=`Эхо $РВ | е с/^.*"scriptPubKey"//' | е с/"reqSigs".*$//' | 
 СЭД 'с/^.*"наговор": "//' | е с/".*$//" # Проверено
UTXO1_VALUE=`Эхо $РВ | е с/"адреса":.*//' | е с/^.*"значение": //' | 
 СЭД 'ы/,.*$//" # Проверено
UTXO1_VOUT=`Эхо $РВ | е с/"адреса":.*//' | е с/^.*"Н": //' | 
 СЭД 'ы/,.*$//" # Проверено
UTXO1_OUTPUT_SCRIPT=`Эхо $РВ | е с/"адреса":.*//' | е с/^.*"scriptPubKey"//' | 
 СЭД 'ы/"reqSigs".*$//' | е с/^.*"наговор": "//' | 
 СЭД 'ы/".*$//" # Проверено
если [[ "$UTXO1_VALUE" = "$сумму 1" ]]
тогда
 # Используйте первый выход (изменение второй выход)
UTXO_VOUT=$UTXO1_VOUT
UTXO_OUTPUT_SCRIPT=$UTXO1_OUTPUT_SCRIPT
еще
 # Использовать второй выход (изменения был первый выход)
UTXO_VOUT=$UTXO2_VOUT
UTXO_OUTPUT_SCRIPT=$UTXO2_OUTPUT_SCRIPT
интернет
если [[ "$отладка" = "правда" ]]
тогда
 Эхо "захват выходы которого мы будем использовать:"
 Эхо "[1 значения ]: "$UTXO1_VALUE
 Эхо "[1 Uвых ]: "$UTXO1_VOUT
 Эхо "[1 OUTPUT_SCRIPT ]: "$UTXO1_OUTPUT_SCRIPT
 Эхо "[значение 2 ]: "$UTXO2_VALUE
 Эхо "[2 Uвых ]: "$UTXO2_VOUT
 Эхо "[2 OUTPUT_SCRIPT ]: "$UTXO2_OUTPUT_SCRIPT
 Эхо "Uвых и сценарий вывода избранных:"
 Эхо "[UTXO_VOUT ]: "$UTXO_VOUT
 Эхо "[UTXO_OUTPUT_SCRIPT ]: "$UTXO_OUTPUT_SCRIPT
 Эхо "-----"
интернет

#
# Теперь создаем адресу обменять
NEW_ADDRESS4=`$BITCOIN_CLI getnewaddress $ADDRESS_TYPE`
если [[ "$отладка" = "правда" ]]
тогда
 Эхо "создать выкупить-по адресу:"
 Эхо "[NEW_ADDRESS4]: "$NEW_ADDRESS4
 Эхо "-----"
интернет

#
# Создать новую транзакцию, несколько меньше значения для размещения горно плата
RAW_TX=`$BITCOIN_CLI createrawtransaction "'
[
{
 "txid": "'$UTXO_TXID'",
 "Uвых": '$UTXO_VOUT'
}
]
 "' "'
{
 "'$NEW_ADDRESS4'": '$AMOUNT2'
}""
RAW_TX_SZ=${#RAW_TX}
если [[ "$отладка" = "правда" ]]
тогда
 Эхо "создания неподписанных сделки:"
 Эхо "[RAW_TX]: "$RAW_TX
 Эхо "-----"
интернет

#
# Получить 2 из 3 закрытых ключей
$BITCOIN_CLI NEW_ADDRESS1_PRIVATE_KEY=`dumpprivkey $NEW_ADDRESS1`
$BITCOIN_CLI NEW_ADDRESS3_PRIVATE_KEY=`dumpprivkey $NEW_ADDRESS3`
если [[ "$отладка" = "правда" ]]
тогда
 Эхо "захват закрытых ключей для использования в подписи:"
 Эхо "[NEW_ADDRESS1_PRIVATE_KEY]: "$NEW_ADDRESS1_PRIVATE_KEY
 Эхо "[NEW_ADDRESS3_PRIVATE_KEY]: "$NEW_ADDRESS3_PRIVATE_KEY
 Эхо "-----"
интернет

#
# 1 из 3 знак от сделки
# Примечание: в Примере signrawtransaction заменены signrawtransactionwithkey
# Примечание: порядок параметров обратного, и сумма становится обязательным
РВ=`$BITCOIN_CLI signrawtransactionwithkey $RAW_TX "'
[
"'$NEW_ADDRESS1_PRIVATE_KEY'"
]
 "' "'
[
{
 "txid": "'$UTXO_TXID'", 
 "Uвых": '$UTXO_VOUT', 
 "scriptPubKey": "'$UTXO_OUTPUT_SCRIPT'", 
 "redeemScript": "'$P2SH_REDEEM_SCRIPT'",
 "сумма": '$AMOUNT2'
}
]""
PARTLY_SIGNED_RAW_TX=`Эхо $РВ | е с/^.*"наговор": "//' | е с/".*//"
PARTLY_SIGNED_RAW_TX_SZ=${PARTLY_SIGNED_RAW_TX#}
если [[ $PARTLY_SIGNED_RAW_TX_SZ -экв $RAW_TX_SZ ]]
тогда
 сделки эхо "не менять размер на PARTLY_SIGNED_RAW_TX_SZ. А?"
выход
интернет
если [[ $PARTLY_SIGNED_RAW_TX_SZ -экв 0 ]]
тогда
 Echo "не удалось в PARTLY_SIGNED_RAW_TX"
 Эхо "ответ: "
 Эхо "[RAW_TX ]: "$RAW_TX
 Эхо "[UTXO_TXID ]: "$UTXO_TXID
 Эхо "[UTXO_VOUT ]: "$UTXO_VOUT
 Эхо "[UTXO_OUTPUT_SCRIPT ]: "$UTXO_OUTPUT_SCRIPT
 Эхо "[P2SH_REDEEM_SCRIPT ]: "$P2SH_REDEEM_SCRIPT
 Эхо "[NEW_ADDRESS1_PRIVATE_KEY]: "$NEW_ADDRESS1_PRIVATE_KEY
выход
интернет
если [[ "$отладка" = "правда" ]]
тогда
 Эхо "сделки после первой подпись:"
 Эхо "[PARTLY_SIGNED_RAW_TX ]: "$PARTLY_SIGNED_RAW_TX
 Эхо "-----"
интернет

#
№ 2 из 3 знаков от сделки
РВ=`$BITCOIN_CLI signrawtransactionwithkey $PARTLY_SIGNED_RAW_TX "'
[
"'$NEW_ADDRESS3_PRIVATE_KEY'"
]
 "' "'
[
{
 "txid": "'$UTXO_TXID'", 
 "Uвых": '$UTXO_VOUT', 
 "scriptPubKey": "'$UTXO_OUTPUT_SCRIPT'", 
 "redeemScript": "'$P2SH_REDEEM_SCRIPT'",
 "сумма": '$AMOUNT2'
}
]""
SIGNED_RAW_TX=`Эхо $РВ | е с/^.*"наговор": "//' | е с/".*//" # Проверено
SIGNED_RAW_TX_SZ=${#SIGNED_RAW_TX}
Полный=`Эхо $РВ | е с/^.*"заполните": //' | е с/\У.*//" # проверено
если [[ "$полная" != "правда" ]]
тогда
 Эхо "вторая подпись не привели к завершенной сделки. А?"
 Эхо $РВ
выход
интернет
если [[ "$отладка" = "правда" ]]
тогда
 Эхо "сделки после второй подписи:" 
 Эхо "[SIGNED_RAW_TX]: "$SIGNED_RAW_TX
 Эхо "-----"
интернет

#
# И теперь транслировать его
TXID=`$BITCOIN_CLI sendrawtransaction $SIGNED_RAW_TX`
если [[ ${#TXID} -экв 0 ]]
тогда
 эхо "в эфире пошло не так. А?"
интернет
если [[ "$отладка" = "правда" ]]
тогда
 Эхо "TXID вещания:"
 Эхо "[TXID]: "$TXID
 Эхо "-----"
интернет

Приведенный выше код генерирует следующий вывод на Testnet работать:

$ ./p2sh-multisig.sh
[Настройка запуска ...]
[...Создавать и финансировать 2-из-3 multisig транзакции...]
Создание нового адреса:
[NEW_ADDRESS1]: 2NAWwgmSnPcXFshHX41ewLHaN4nYLTzEdhn
[NEW_ADDRESS2]: 2NAoFjMziphkxULu7p4dtcBKLXicnvvcx53
[NEW_ADDRESS3]: 2Mu3S24XuasYheQsinhKAabDnGnH6eakm2x
-----
Получение публичного ключа на адрес:
[NEW_ADDRESS1_PUBLIC_KEY]: 036ef3ee62456676a49b3087df3f0d804eb09bfcfa95ca606465bee5cfeab4da98
[NEW_ADDRESS2_PUBLIC_KEY]: 0386518595790f10fa1915bb119a0b41d96a380eeb3f3a76ae0694acc9fd2fb333
[NEW_ADDRESS3_PUBLIC_KEY]: 0371d090dd98316a9f8f63c1d925b42cf157f265d1eff84b65620629914b43019c
-----
Получить p2sh адреса и redeemScript:
[P2SH_ADDRESS ]: 2N3G8rhzkMBmfRp54A4rfpW5jTcd65m7hcs
[P2SH_REDEEM_SCRIPT]: 5221036ef3ee62456676a49b3087df3f0d804eb09bfcfa95ca606465bee5cfeab4da98210386518595790f10fa1915bb119a0b41d96a380eeb3f3a76ae0694acc9fd2fb333210371d090dd98316a9f8f63c1d925b42cf157f265d1eff84b65620629914b43019c53ae
-----
Адрес p2sh фонда 
[UTXO_TXID]: 06c7e967e0d5f53899a02137d3a1d4dc0eee53690d20d403242954caa187c721
-----
[...Выкупить 2-из-3 сделки]
Захват выходы которого мы будем использовать:
[Значение 1 ]: 0.00030001
[1 Uвых ]: 0
[1 OUTPUT_SCRIPT ]: a9146ddd64168434e4e7cf8f7a2a2b485fa1fc8f987e87
[Значение 2 ]: 0.00005412
[2 Uвых ]: 1
[2 OUTPUT_SCRIPT ]: a9146ecbcb78f6ab60ebe53cc69532407a32973af9aa87
Uвых и скрипт вывода выбрали:
[UTXO_VOUT ]: 0
[UTXO_OUTPUT_SCRIPT ]: a9146ddd64168434e4e7cf8f7a2a2b485fa1fc8f987e87
-----
Создать искупить адрес:
[NEW_ADDRESS4]: 2MyuteHEFmxvG2rX8r817DTKhqj8f2ncsmt
-----
Создание неподписанных транзакций:
[RAW_TX]: 020000000121c787a1ca54292403d4200d6953ee0edcd4a1d33721a09938f5d5e067e9c7060000000000ffffffff01993a00000000000017a9144920d433d073267b904ae23df3b15ea47aec95038700000000
-----
Захват закрытых ключей для использования в подписи:
[NEW_ADDRESS1_PRIVATE_KEY]: cVT8F8PGF9HJSeBgQir5ZHj5Ng4upSPAjhyvnk2puyw6zs5gdbyr
[NEW_ADDRESS3_PRIVATE_KEY]: cSakmVL2kdR5jTukCFNBPCifcmg3jjQ6egevtagnsaosddwcu4ft
-----
Сделка после первой подписи:
[PARTLY_SIGNED_RAW_TX ]: 0200000000010121c787a1ca54292403d4200d6953ee0edcd4a1d33721a09938f5d5e067e9c70600000000232200205d577278a6dfefffaa4e04ef23fd1172e923f9e7b4949f991b3d7f2af89abb83ffffffff01993a00000000000017a9144920d433d073267b904ae23df3b15ea47aec950387040047304402202c9946f1d50a974f3b7cf24a99002f3f3ca18af7b54939bf2ec1acf6f5528b07022029aaa63fde914735b8e92c202ce3d4b02ea8ded1d2b47821670dd3c6d8dcb02b0100695221036ef3ee62456676a49b3087df3f0d804eb09bfcfa95ca606465bee5cfeab4da98210386518595790f10fa1915bb119a0b41d96a380eeb3f3a76ae0694acc9fd2fb333210371d090dd98316a9f8f63c1d925b42cf157f265d1eff84b65620629914b43019c53ae00000000
-----
Сделка после второй подписи:
[SIGNED_RAW_TX]: 0200000000010121c787a1ca54292403d4200d6953ee0edcd4a1d33721a09938f5d5e067e9c70600000000232200205d577278a6dfefffaa4e04ef23fd1172e923f9e7b4949f991b3d7f2af89abb83ffffffff01993a00000000000017a9144920d433d073267b904ae23df3b15ea47aec950387040047304402202c9946f1d50a974f3b7cf24a99002f3f3ca18af7b54939bf2ec1acf6f5528b07022029aaa63fde914735b8e92c202ce3d4b02ea8ded1d2b47821670dd3c6d8dcb02b0147304402201e5e933e674f7e4597c1066b48cdb4ca1c7382235b53d411608c2e3a22a31df7022022fc673d696987146effcbb9ce43265ab9ee19da05eaef0bb35ced729fe9592501695221036ef3ee62456676a49b3087df3f0d804eb09bfcfa95ca606465bee5cfeab4da98210386518595790f10fa1915bb119a0b41d96a380eeb3f3a76ae0694acc9fd2fb333210371d090dd98316a9f8f63c1d925b42cf157f265d1eff84b65620629914b43019c53ae00000000
-----
код ошибки: -26
сообщение об ошибке:
необязательные-скрипт-проверить-флаг (подписи должны быть равны нулю для не удалось проверить(мульти)сиг работа) (код 64)
Эфир пошло не так. Да?
TXID вещания:
[TXID]: 
-----
$

В регтест и Testnet конф файлы (полномочия отредактировано):

$ кот регтест.конф 
регтест=1
сервер=1
rpcuser=ХХХ
rpcpassword=ХХХ
выбрать=127.0.0.1
deprecatedrpc=createmultisig
deprecatedrpc=создать
отладка=1
[регтест]
чтобы=18443

$ кошка тестовом режиме.конф 
тестовом режиме=1
сервер=1
rpcuser=ХХХ
rpcpassword=ХХХ
выбрать=127.0.0.1
чтобы=18332

Версии используется:

Мастер:
Биткоин основных демона версия v0.17.99.0-g6d0a14703e288d72ff19d4d89defbc853233899f
Основной клиент биткоина версия ЭКП версии v0.17.99.0-g6d0a14703e288d72ff19d4d89defbc853233899f
версия v0.17:
Биткоин основных демона версия v0.17.1.0-gef70f9b52b851c7997a9f1a0834714e3eebc1fd8
Основной клиент биткоина версия ЭКП версии v0.17.1.0-gef70f9b52b851c7997a9f1a0834714e3eebc1fd8

Декодирования сделки:

{
 "txid": "e875677a43c3ea91f7ed5790f3133d130fdcbb9e0cc51f098971bb79517c7103",
 "хэш": "8d0701cf48cbf48823ede2250832311cea93b6ea0ab116f9e6b4f40c64153027",
 "версия": 2,
 "размер": 372,
 "размер V": 182,
 "вес": 726,
 "locktime": 0,
 "Альвин": [
{
 "txid": "06c7e967e0d5f53899a02137d3a1d4dc0eee53690d20d403242954caa187c721",
 "Uвых": 0,
 "scriptSig": {
 "АСМ": "00205d577278a6dfefffaa4e04ef23fd1172e923f9e7b4949f991b3d7f2af89abb83",
 "наговор": "2200205d577278a6dfefffaa4e04ef23fd1172e923f9e7b4949f991b3d7f2af89abb83"
},
 "txinwitness": [
"",
"304402202c9946f1d50a974f3b7cf24a99002f3f3ca18af7b54939bf2ec1acf6f5528b07022029aaa63fde914735b8e92c202ce3d4b02ea8ded1d2b47821670dd3c6d8dcb02b01",
"304402201e5e933e674f7e4597c1066b48cdb4ca1c7382235b53d411608c2e3a22a31df7022022fc673d696987146effcbb9ce43265ab9ee19da05eaef0bb35ced729fe9592501",
"5221036ef3ee62456676a49b3087df3f0d804eb09bfcfa95ca606465bee5cfeab4da98210386518595790f10fa1915bb119a0b41d96a380eeb3f3a76ae0694acc9fd2fb333210371d090dd98316a9f8f63c1d925b42cf157f265d1eff84b65620629914b43019c53ae"
],
 "последовательности": 4294967295
}
],
 "Uвых": [
{
 "значение": 0.00015001,
 "н": 0,
 "scriptPubKey": {
 "АСМ": "OP_HASH160 4920d433d073267b904ae23df3b15ea47aec9503 OP_EQUAL",
 "наговор": "a9144920d433d073267b904ae23df3b15ea47aec950387",
 "reqSigs": 1,
 "тип": "scripthash",
 "адреса": [
"2MyuteHEFmxvG2rX8r817DTKhqj8f2ncsmt"
]
}
}
]
}

Активировать расшифровывает скрипт:

{
 "АСМ": "2 036ef3ee62456676a49b3087df3f0d804eb09bfcfa95ca606465bee5cfeab4da98 0386518595790f10fa1915bb119a0b41d96a380eeb3f3a76ae0694acc9fd2fb333 0371d090dd98316a9f8f63c1d925b42cf157f265d1eff84b65620629914b43019c 3 OP_CHECKMULTISIG",
 "reqSigs": 2,
 "тип": "multisig",
 "адреса": [
"mpZQSfgndvkjqcoXdvofNsE3aJeRAXjrvm",
"mz9eLLofqQKQcuhwGjHxxNhSVxvoYWZDry",
"mkZv5XqarsoFMoTWSgMfqE9yihvUu8AHay"
],
 "p2sh": "2MxYTNmXWUFwv8miRAcoCsqAr7MduFCjeav",
 "segwit": {
 "АСМ": "0 5d577278a6dfefffaa4e04ef23fd1172e923f9e7b4949f991b3d7f2af89abb83",
 "наговор": "00205d577278a6dfefffaa4e04ef23fd1172e923f9e7b4949f991b3d7f2af89abb83",
 "reqSigs": 1,
 "тип": "witness_v0_scripthash",
 "адреса": [
"tb1qt4thy79xmlhll2jwqnhj8lg3wt5j8708kj2flxgm84lj47y6hwps0je8zu"
],
 "p2sh-segwit": "2N3G8rhzkMBmfRp54A4rfpW5jTcd65m7hcs"
}
}

Большое спасибо, если вы дошли так далеко. Ты замечательная! Явно я чего-то недопонимаю. Но что?

+194
Matt Sheppard 13 апр. 2015 г., 5:25:04

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

Это кажется неправильным, как, когда каналы времени они должны вернуть деньги, и как я уже сказал выше, я думал, что они могли оставаться открытыми. Что это?

+127
Katie Lane 14 дек. 2015 г., 7:53:40

Подвиги / хаки в результате кражи БТЦ:

[Д]DoS-атак ([распределенных] отказ в обслуживании):

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

+99
user26973 22 янв. 2013 г., 16:32:31

Я купил ВСН от Bitcoin.com и предоставил Электрум адрес кошелька. Деньги не прибывают и Симплекс, который устраивал сделки, сообщил, что Электрум кошельки только БТЦ, даже если приложение не упоминать об этом. Симплекс прислал мне ссылку состоят из HTTP-адрес на Bitcoin.com'ы сайт и адрес кошелька я изначально предоставлен, который принимает меня туда, где мое ВСН сидит, но я не знаю, как вернуть себе контроль над ним и отправить его на новое ВСН кошелек. Bitcoin.com не отвечают на письма. Может кто-нибудь помочь?

+91
Usama Jan 19 июл. 2014 г., 7:13:21

Это хорошее объяснение от Угам Камат , как биткоин цепи реорганизация закончится.

Хотя, думаю, многие упускают тот момент, о что все это значит...

Почему цепь реорганизация проблема? Это не так.

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

Шахтерам терять – у них нет доступа к награде (блок субсидий и выплат) из-за устаревшего блока.

Почему же они проигрывают? Им потребовалось слишком много времени для проверки и передачи блоков друг к другу.

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

Будучи тесно связан-это просто еще один аспект “доказательство работы” , необходимых для победы блока награду. Работа дает что-то, что хорошо для биткоина – и необходимых для его работы в масштабе.

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

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

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

+33
Tatva FNU 16 мар. 2015 г., 3:18:34

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