Пример разработчика для p2sh-multisig видит sendrawtransaction стабильно возвращать "необязательные-скрипт-проверить-флаг" ошибка [решено]

Обзор

Следующие сделки: 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"
}
}

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

+247
lapstar 20 февр. 2010 г., 16:02:56
32 ответов

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

Почему это вышло?

Биткоин делает аккуратную вещь с проводками и истории. Я не буду вдаваться во все это, но блокчейн позволяет работать между просто двумя компьютерами. Твое семя является детерминированным частная ключи на 10 адресов на Электрум. Это всегда будет правдой, на любой машине, в любую точку вселенной (если ошибка разбивает его на компьютере).

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

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

+953
Accountant Derek 03 февр. '09 в 4:24

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

+895
CHEMIstik 9 мар. 2010 г., 22:45:22
Другие ответы

Связанные вопросы


Похожие вопросы

Я хочу продавать цифровые товары (электронные книги) с помощью Bitcoin, и я хочу, чтобы продукты, чтобы быть мгновенно доступна после покупки. Что я мог сделать?

+780
Vinetics C Skin Cream 28 янв. 2010 г., 17:56:59

Я пытаюсь использовать API, который расположен по адресу:

https://api-r.bitcoinchain.com/v1/address/13gWtMQJdg3H6XBpFjMELcHLJc1HHp79vD

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

+767
Hassene Ben Amara 23 нояб. 2013 г., 14:23:30

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

Это правда, что на самом деле с сделан ASIC будут более трудными, но если они могут сделать это, так можете вы. Сейчас (11-2013), есть чипы можно использовать в создании вашего машина(ы). Однако, это в основном старые модели чипов (128ns или выше, обычно), так что вам придется использовать много, чтобы получить что угодно, вплоть до сегодняшних пар. Имея это в виду, обычно существует несколько вещей, которые являются статическими на штыри, такие как сила, связь с чипом, а вспомогательные штыри для подключения конденсаторов, резисторов, синхронизация часов (кристаллы), используемый для управления цепи и чип, с какой скоростью он работает, и т. д. Всего 128 контактный чип, должен, если не все эти линии подключены к чему-то.

+747
MrGerbik 9 дек. 2014 г., 11:17:29

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

Как отправить 50% на кошелек 1. Отправить 25% в кошелек 2. Отправить 25% на кошелек 3.

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

Спасибо заранее.

+729
Alex Ishida 16 окт. 2010 г., 6:54:55

Перемещение подписи в отдельном поле фактически не решить. Однако одна из вещей, которые segwit сделал, чтобы переопределить сообщение хэшируется и подписал. Это указано в бип 143.

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

Для некурящих, segwit подписей, сообщений обычно всю сделку проводить со всеми scriptSigs пуст, за исключением входной, что подпись будет принадлежать. Что входной сигнал будет содержать scriptPubKey выходного тратятся. Важная вещь, чтобы отметить здесь заключается в том, что сообщение содержит все prevouts, которые указаны. И каждая подпись подписывает аналогичное сообщение, но до сих пор все входы в каждый из них.

Если вы должны были добавить еще один вход, это не только добавляет еще одну подпись, что должно быть сделано, но также он увеличивает размер данных, которые должны быть хэширован за каждую подпись в сделке. Это означает, что если транзакция имеет П входов каждого из которых требуется 1 подпись (так н подписи), за каждую подпись, Н входы должны быть хэширован. Это делается в N раз, так что каждый входной хэшируется н*н = н^2 раз. Таким образом, квадратичная.

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

От бип 143, данные, сериализованные и хэшируется является:

 1. nVersion сделки (4-байтов с обратным порядком байтов)
 2. hashPrevouts (32-байтовый хэш)
 3. hashSequence (32-байтовый хэш)
 4. минус (32-байтовый хэш + 4 байтов с обратным порядком байтов) 
 5. scriptCode входного (сериализован как скрипты внутри CTxOuts)
 6. значение выходного потратил на этот вход (8 байтов с обратным порядком байтов)
 7. nSequence входа (4-байт от младшего к старшему)
 8. hashOutputs (32-байтовый хэш)
 9. nLocktime сделки (4-байтов с обратным порядком байтов)
 10. тип sighash подписи (4-байтов с обратным порядком байтов)

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

Теперь вы можете заметить, что это содержат hashPrevouts и hashSequence которые являются хэш prevouts и хэш все последовательности чисел, соответственно. Объем данных, который хэшируется для этих хешей будет расти по мере добавления новых входов. Если реализовано наивно, подписания и проверки segwit входов равно будет квадратичной.

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

При подписании или проверке времени, подписавшего или верификатор может сначала вычислить hashPrevouts, hashSequence, и hashOutputs раз. Эти ценности остаются одинаковыми для всех входов. Затем для каждой подписи, они вычисляют sighash, который не заканчивается до повторного хэширования большинство данных и, как правило, не меняется в размерах от входа до входа. Таким образом, поскольку сумма данных хэшируется действительно меняется только когда транзакция получает входной сигнал, а только изменения относительно фиксированной суммы, segwit sighashing является линейной.

+714
its right 1 нояб. 2011 г., 10:45:26

Вам не хватает ботнеты видеочипов.

Честно говоря, я не думаю, что бот-это такая большая проблема. Ботнеты успеха, потому что они являются невидимыми для жертв (некоторые трояны даже включить антивирус на чистую систему). Если зараженный компьютер имеет 100% загрузку процессора, она не останется зараженным долго. Кража данных кредитных карт по-прежнему много выгоднее, чем работает инвалид горно ботнет.

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

+694
Wendy Moniuk 13 июн. 2017 г., 7:16:16

Моя машина не может справиться с биткоин-блокчейн в Qt и я хочу удалить ее, но я не могу найти, где он находится. Я пробовал на CD в ~/.Bitcoin и ~/библиотеки/application поддержки/биткоин/ но не повезло. Где еще я мог найти его, чтобы удалить блокчейн?

+659
chrisshon 19 авг. 2013 г., 22:32:01

Я строю сырьевой сделки. Как установить реле плата в консоли Bitcore кошелек? Я пытаюсь отправить транзакцию с 2 подписями. Я создал сделку и подписали сделки с 2 полных подписей. После того, как я отправить необработанные транзакции я получаю сообщение об ошибке, говорящее об ошибке -26 мин реле плата не встречал. Я должен ввести в "settxfee 0.001" на консоль, прежде чем я создать rawtransaction ?

+635
Andy Foster 4 февр. 2018 г., 13:24:04

Мне было интересно, если есть какая-то услуга для Биткоина, что эквивалентно

https://infura.io/

Все, что я мог найти подобное до сих пор blockcypher, но это, кажется, требуют платы, а infura, кажется, не требует каких-либо сборов.

Спасибо!

+635
user214920 4 дек. 2013 г., 3:55:05

Взгляните на эту сделку

055f9c6dc094cf21fa224e1eb4a54ee3cc44ae9daa8aa47f98df5c73c48997f9 (биткоин mainnet)

(https://www.blockchain.com/btc/tx/055f9c6dc094cf21fa224e1eb4a54ee3cc44ae9daa8aa47f98df5c73c48997f9)

Однако, веб-исследователям удастся представить это как следует, так вот, что вы получите, если расшифровать его с вашим собственным узла:

{
 "txid": "055f9c6dc094cf21fa224e1eb4a54ee3cc44ae9daa8aa47f98df5c73c48997f9",
 "версии": 1,
 "locktime": 0,
 "Альвин": [
{
 "txid": "b187426f2fdd5a7ac2f49d822f68e07f48486ee53a8a45de2494f12acb37a0d8",
 "Uвых": 3,
 "scriptSig": {
 "АСМ": "030e001332b43924be343986cca3df669f57b0dedd120990e727787f8dea50fdbc 3046022100d78c31a20fa11533475be893b229eb4d252e600dcc2a0735d360c541b6aec813022100e3eaa72c915ef47d94ccbd18c2ba6d9ae5b98be6e9fbf968d4bbbb003e06d68701"
},
 "последовательности": 4294967295,
 "н": 0,
 "адрес": "1FrbMcddiM1v3HMpUqygjZYCamBykWCWao",
 "valueSat": 1114144,
 "значение": 0.01114144,
 "doubleSpentTxID": нуль
}
],
 "Uвых": [
{
 "значение": "0.00010860",
 "н": 0,
 "scriptPubKey": {
 "АСМ": "1 030e001332b43924be343986cca3df669f57b0dedd120990e727787f8dea50fdbc 20434e545250525459000000140001a9e0e85838b5000000174876e800010053b6 2 OP_CHECKMULTISIG",
 "reqSigs": 1,
 "тип": "multisig",
 "адреса": [
"1FrbMcddiM1v3HMpUqygjZYCamBykWCWao",
"1HT7xU2Ngenf7D4yocz2SAcnNLW7rK8d4e"
]
}
},
{
 "значение": "0.00010860",
 "Н": 1,
 "scriptPubKey": {
 "АСМ": "1 030e001332b43924be343986cca3df669f57b0dedd120990e727787f8dea50fdbc 20a3c3000000000000000000000000000000000000000000000000000000000000 2 OP_CHECKMULTISIG",
 "reqSigs": 1,
 "тип": "multisig",
 "адреса": [
"1FrbMcddiM1v3HMpUqygjZYCamBykWCWao",
"1HT7xU2Ngenf7D4yocz2SAcnNLW7rK8d4e"
]
}
},
{
 "значение": "0.00010860",
 "н": 2,
 "scriptPubKey": {
 "АСМ": "1 030e001332b43924be343986cca3df669f57b0dedd120990e727787f8dea50fdbc 100000000000000000000000000000000000000000000000000000000000000000 2 OP_CHECKMULTISIG",
 "reqSigs": 1,
 "тип": "multisig",
 "адреса": [
"1FrbMcddiM1v3HMpUqygjZYCamBykWCWao",
"1HT7xU2Ngenf7D4yocz2SAcnNLW7rK8d4e"
]
}
},
{
 "значение": "0.01061564",
 "н": 3,
 "scriptPubKey": {
 "АСМ": "OP_DUP OP_HASH160 a2f2d251cc06ec1e789800127e3fa6ed9e515651 OP_EQUALVERIFY OP_CHECKSIG",
 "reqSigs": 1,
 "тип": "pubkeyhash",
 "адреса": [
"1FrbMcddiM1v3HMpUqygjZYCamBykWCWao"
]
}
}
],
 "blockhash": "0000000000000000491fdff68a1c99de7798278a791e461b8d5bebdd9df9de46",
 "подтверждений": 1,
 "время": 1401911255,
 "blocktime": 1401911255,
 "valueOut": 0.01094144,
 "размер": 433,
 "значение": 0.01114144,
 "сборы": 0.0002
}

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

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

Вот что я сделал:

Сначала я создал 2 новых адресов.

индекс@ноутбука-QHUBB7MI:~$ БТЦ getnewaddress
2MsTYs9Ymsh332Ctou3dyxVe5PoTW4fLp2o
индекс@ноутбука-QHUBB7MI:~$ БТЦ getnewaddress
2N2yDtoRTChgrD675GJ12JE3wXzk3hMzgop

Потом я получил свои публичные ключи с помощью getaddressinfo ЭКП.

индекс@ноутбука-QHUBB7MI:~$ БТЦ getaddressinfo 2MsTYs9Ymsh332Ctou3dyxVe5PoTW4fLp2o
{
 "адрес": "2MsTYs9Ymsh332Ctou3dyxVe5PoTW4fLp2o",
 "scriptPubKey": "a9140254bfce5627cc6267eb2aaa75dce00f03bc13dc87",
 "ismine": правда,
 "разрешимые": правда,
...
 "по умолчанию": "02d01d8e315567fb3571f31d86eb53d21729c6072751276d0c2617d787d48b2af8",
...

}
индекс@ноутбука-QHUBB7MI:~$ БТЦ getaddressinfo 2N2yDtoRTChgrD675GJ12JE3wXzk3hMzgop
{
 "адрес": "2N2yDtoRTChgrD675GJ12JE3wXzk3hMzgop",
 "scriptPubKey": "a9146aaa8606a93804de00e4e91c683dbfd5e1caa7d887",
 "ismine": правда,
 "разрешимые": правда,
...
 "по умолчанию": "0236240c39790e770bc0c378bebb1a86d2ac24f835b6e81e69c623262b1f0e0326",
...
}

Затем я создал multisig-адрес.

индекс@ноутбука-QHUBB7MI:~$ БТЦ createmultisig 1 '["0236240c39790e770bc0c378bebb1a86d2ac24f835b6e81e69c623262b1f0e0326", "02d01d8e315567fb3571f31d86eb53d21729c6072751276d0c2617d787d48b2af8"]'
{
 "адрес": "2Mu6J8iXwzCgWxJzVNkzfQ8yZwJ92YWW6es",
 "redeemScript": "51210236240c39790e770bc0c378bebb1a86d2ac24f835b6e81e69c623262b1f0e03262102d01d8e315567fb3571f31d86eb53d21729c6072751276d0c2617d787d48b2af852ae"
}

Наконец, я отправил несколько биткоинов на адрес.

индекс@ноутбука-QHUBB7MI:~$ БТЦ sendtoaddress 2Mu6J8iXwzCgWxJzVNkzfQ8yZwJ92YWW6es 0.00999744
1373fd7a2da3199e0f4ead0a5456266b52263356a86b726882dbc03da1625ed1

Я читал, что сделки (в тестовом режиме) и получил это

{
 "txid": "1373fd7a2da3199e0f4ead0a5456266b52263356a86b726882dbc03da1625ed1",
 "хэш": "290a0ec0c306a4485a7099c1f7813d9f9a741a9b4fcc68c5decc68de5ddb1b14",
 "версия": 2,
 "размер": 338,
 "размер V": 173,
 "вес": 692,
 "locktime": 1572217,
 "Альвин": [
{
 "txid": "7e57de9ce9797e8c5face7c3ed7ce89eb3107b05e00c129f336cebc1b1113dcb",
 "Uвых": 1,
 "scriptSig": {
 "АСМ": "00205a010c52d33bfac812f62f2cb7f917a3b84f67c66c1ac9ac1701c7caa4e5da7c",
 "наговор": "2200205a010c52d33bfac812f62f2cb7f917a3b84f67c66c1ac9ac1701c7caa4e5da7c"
},
 "txinwitness": [
"",
"304402206b7f9fcdf972a2aaa6a734e921d1f76b3da3a0f7a98e2bf3657241ed0cc4433a022040b1f0f31b6231ff73465986c3379ce15cbf2b33e28b09460aac8812d8e9826801",
"304402200ffeeb246535a312f33c05652f9ef5d696fd26883659e6429731e5f0416be9fc022067a5852e99f96c5def0f7288b9a7ba567e3df258fd79071a60694580ac3de1fc01",
"522103a8f863c198bfa005273ae53d9db239e3be2cabcd5cbf34f52318795166f5cdff2102cff91271435f4f121aa90f3babc5551090f862575e5eb12429acb8e6daf4d8cd52ae"
],
 "последовательности": 4294967294
}
],
 "Uвых": [
{
 "значение": 0.00999744,
 "н": 0,
 "scriptPubKey": {
 "АСМ": "OP_HASH160 143ff7e3677973ecd914d8d134efde5adff4a96b OP_EQUAL",
 "наговор": "a914143ff7e3677973ecd914d8d134efde5adff4a96b87",
 "reqSigs": 1,
 "тип": "scripthash",
 "адреса": [
"2Mu6J8iXwzCgWxJzVNkzfQ8yZwJ92YWW6es"
]
}
}
]
}

И это абсолютно нормальное на вид.

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

+623
Animesh Ashish 23 апр. 2012 г., 5:21:24

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

Сегодня подавляющее большинство вычислительной мощности контролируется горных бассейнов. По данным blockchain.info GHash.ИО-30%, БТЦ Гильдии составляет 23% и Элигия составляет 12% (по состоянию на сегодня 15/12/13).

Есть ли угроза для сети, если бассейны будут пары, чтобы получить больше, чем 50%? Кроме того, два крупных бассейна может скомпрометировать одновременно, чтобы получить более 50%. Мне было интересно, насколько реален такой сценарий?

Упомянутые ссылки:

+619
Numberuan 30 июн. 2019 г., 8:50:41

Можно задать учетную запись как и что

счета биткоин-Кинк importprivkey "myPrivKey" "" правда

если вы хотите импортировать нескольких закрытых ключей и сделаю

биткоин-Кинк importprivkey "myPrivKey" "аккаунт" ложные
биткоин-Кинк importprivkey "myPrivKey" "аккаунт" ложные
биткоин-Кинк importprivkey "myPrivKey" "аккаунт" ложные
счета биткоин-Кинк importprivkey "myPrivKey" "" правда

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

чтобы импортировать его в учетная запись по умолчанию оставить его пустым

биткоин-Кинк importprivkey "myPrivKey" "" правда

Также, пожалуйста, рассмотреть вопрос о прекращении использования счетов, так как она будет удалена в версии 0.16.

+577
vovaturk 27 дек. 2014 г., 14:52:44

Я ищу, чтобы сделать все мои крипто связанные вещи, как хранить монеты и управления мои кошельки для монет внутри себя VirtualBox. Я планирую использовать Ubuntu, как кажется наиболее дружна со многими крипто монеты. Что является лучшим и самый маленький образ что-то вроде этого?

+567
litvinleo0977114314 18 февр. 2018 г., 22:59:11

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

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


Существует множество вариаций:

  • Многие физические биткойны элементов новизны и не имеют никакой ценности.

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

  • Некоторые физические монеты биткоин связанное значение, которое может быть выкуплено, если компания, выпустившая монеты по-прежнему в бизнесе и честные. Например, титан биткоин сказал:

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

  • Некоторые физические биткойны иметь закрытый ключ скрытые внутри них или под пластиковый стикер. Можно, наверное, типа, что в биткойн-кошелек для импорта ключа. Примером может служить прекращено Серия-1 Casascius монета

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

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

    Мой акцент - я думаю, это может быть монета у вас есть.

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


Полезные ссылки

+536
JamesWilson 17 нояб. 2017 г., 23:16:55

Блок файлы в таком же формате, как файл Bootstrap. Их формат очень прост: просто соединил все блоки после добавления префикса к сети (чтобы не смешивать testnets) и длина блока.

[номер сети] [длина] [заголовок блока] [транзакций блок]
[номер сети] [длина] [заголовок блока] [транзакций блок]
[номер сети] [длина] [заголовок блока] [транзакций блок]
... повторяю для всех блоков

Чтобы создать загрузочный файл, все, что вам нужно сделать, это просто взять данные из blk00001.дат до последнего блока файла (вот это blk000054.дат) и поставьте все это в бутстрап.в DAT - файл, желательно отсортированный так, что ее можно просто импортировать их все за один раз без необходимости замены блоков.

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

+487
Daniel Wessel 6 янв. 2018 г., 2:42:15

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

Таким образом, вы можете запустить их, вписав в терминале либо bitcoind для сервера демон или биткоин-в Qt для GUI кошелек. Кроме того, большинство настольных Manager автоматически поместить ярлык на все приложения в меню приложений; для Unity Ubuntu, вы можете просто ввести "биткоин" в своем порыве, чтобы найти биткоин-в Qt GUI приложение Кошелек.

Как и большинство приложений, это делает папка в вашей домашней директории для сохранения данных он использует. Как bitcoind и Bitcoin-это в Qt сохранить все цепочки блоков данных в ~/.биткоин/ папку. Кошелек является самым сохранены в ~/.биткоин/кошелек.дат.

+477
Christian Grabowski 26 авг. 2018 г., 15:00:40

Я новичок в Bitcoin и сделал ошибку новичка. Я отправил биткоины с кошелька мицелия на blockchain кошелек кошелек. Мицелий предлагают некоторые полагаются мелкие сборы без предупреждения, они только предупреждают, что если вы выбираете 0 это может и не произойти. Я выбрал небольшую плату, как я считал, что я не в спешке. Теперь Mycellium говорит, что сделка его подтвердила и компания утверждает, что ее ожидании. Если я правильно понял Blockcypher он говорит, что моя БТЦ получают, но не отправлять. Есть ли что я могу сделать, но надеюсь, что кто-то мины, остальные заблокировать? Если да, можете ли вы скажите, пожалуйста, что в простой способ? сумма вроде 0.08 БТЦ... поэтому его относительно высокой для студента...

+451
Zeinab Abbasimazar 10 сент. 2016 г., 19:06:11

Я заплатил последний раз 21 апреля и 25 апреля должны быть мои оплаты, но прошло уже дней вот мой ID транзакции

b5a9cb6a67429ec60c51f3aa197bec67af0003c841890132051f9fea40f71f76

И так же, как 22 апреля, и я должен сделать мой биткоин в апреле 26 ID транзакции

77fc2aa152a80e0abe382a53d5254f113460a6f17cff95852bd0827a572e01cb

Я ждал сколько дней только на биткоин отправиться в мой кошелек, но он сказал биткойн-сети не почему и что произошло ?пожалуйста, мне нужна помощь

+397
r00s 17 сент. 2018 г., 5:04:20

Посмотри в спецификации https://en.bitcoin.it/wiki/Protocol_specification

Проверяем "инв" --> "данные" --> "Техас" последовательность распределения транзакций

+386
cantara256 23 сент. 2017 г., 12:38:49

Я пытаюсь преобразовать открытый ключ шестигранный с биткоин-адресом.

С этого сайта http://gobittest.appspot.com/Addressя могу сделать некоторые испытания.

Например, у меня есть публичный ключ:

04b4d653fcbb4b96000c99343f23b08a44fa306031e0587f9e657ab4a2541129368d7d9bb05cd8afbdf7705a6540d98028236965553f91bf1c5b4f70073f55b55d

По данным веб-сайта, послание должно быть:

1DU8Hi1sbHTpEP9vViBEkEw6noeUrgKkjh

который является base58 кодируют 0088C2D2FA846282C870A76CADECBE45C4ACD72BB655DA1216.

Однако, если я делаю Base58 кодирования непосредственно на 0088C2D2FA846282C870A76CADECBE45C4ACD72BB655DA1216 на этот сайт https://www.browserling.com/tools/base58-encodeя получу:

bSLwwticQjhNvEtqTMZXbn3dLmFrPvNrdge4hmhsfadphwb3b2ruh3xqtnzv8ess8v6v

который полностью отличается от 34-гольца биткоин-адрес.

Кто знает, почему?

+354
JamesR 8 апр. 2018 г., 13:37:19

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

+347
Gabor Forgacs 27 нояб. 2019 г., 23:45:40

Там, кажется, некоторые интересные изменения в этой версии, возможно, влияет на сам протокол (де-факто).

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

+308
Renato Gama 19 мая 2012 г., 15:02:07

Я видел клиента СПВ упоминается в нескольких местах. Что именно является клиентом СПВ? Как это отличается от стандартного клиента?

+215
crlane 6 янв. 2014 г., 17:13:27

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

+201
Moker 3 мар. 2017 г., 9:46:47

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

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

В таких случаях обращение имеет несколько utxos, возможно, разных размеров, связанные с ним.

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

avoidpartialspend - это параметр конфигурации, который говорит coinselection система провести все utxos на один адрес, прежде чем пытаться источника utxos с других адресов (которые могут быть необходимыми в зависимости от суммы перевода). Это гарантирует, что, насколько это возможно, utxos выбранного минимизировать количество отдельных адресов, которые связаны вместе для одной транзакции. Однако, это достигается за счет более высокой платы за транзакцию за счет потенциально большего размера сделки, и субоптимальная выбор utxo в отличие от выбора лучшего входа(ов) на сумму отправки.

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

+183
Ahenobarbus Henocied 22 июл. 2010 г., 15:27:01

Я интеллектуального анализа данных блокчейна с помощью JSON/RPC на этом bitcoind полный узел с txindex (0.9.1).

У меня 64 подключения RPC одновременно собирается bitcoind от удаленного клиента. Моя нагрузка в основном getrawtransaction и decoderawtransaction. Я наткнулся rpcthreads до 64.

Я наблюдая это bitcoind занимает очень большое количество времени (от 30 секунд до 2-3 минут), чтобы ответить на каждый вызов.

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

Если я запрашиваю что-то вроде "Помогите", я получаю ту же медленное время отклика, так что, видимо, связано с RPC-сервере, а не на самом деле доступ к данным с диска/памяти.

Мне не хватает настройки, чтобы сделать его масштаб?

+167
Olusola Omosola 15 окт. 2017 г., 15:29:04

Я пытаюсь сделать приложение для Bitcoin и хотели бы использовать полный узел, таким образом, я купил 128 ГБ USB-накопитель 3.0 хранить его на. Я использую макбук начале 2014 воздуха: 1.4 процессор Intel двухъядерный i5, 8 ГБ 1600 МГц DDR3. Обработки регулируется с помощью USB-соединения? Диск отформатирован как Mac OS удлинил журнал.

Используя биткойн-ядра, это синхронизация очень медленно. После почти 24 часов он говорит, что последний получил блок был создан 2 года 3 недели назад. Панель синхронизации составляет около 1/8 пути сделать. Какие-то мысли или рекомендации будут полезны.

+118
Julian Quattlebaum 20 мар. 2011 г., 4:40:19

https://bitcointalk.org/index.php?topic=30947.msg23736281#msg23736281 говорит, что

  1. входящий порт может быть открыт или
  2. UPnP включен.

Это входящий порт открыт на устройстве NAT, так что все входящие сообщения, приходящие на этот порт передаются моим хозяином?

Редактировать: больше ресурсов по теме https://bitcoin.org/en/full-node#enabling-connections и https://bitcoin.org/en/full-node#network-configuration

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

Это автоматическое открытие сказали УПНП путь?

И вручную настройка роутера собственно 1 пуля, упомянутых выше?

+101
pantera130493 17 авг. 2013 г., 12:50:52

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

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

Давайте анализировать ситуацию с различных точек зрения.

Если мы рассматриваем только действия Шахтера, это теоретически возможно для них, чтобы откатить цепочку? Да. Если вы хотели бы знать, если есть небольшое количество генеральных директоров горнодобывающих компаний в мире, которая, если все вместе убедили, с полным игнорированием своих собственных финансовых интересов, состояния сети, и юридические последствия, может принять решение откатить цепочку до момента кражи, то ответ да. Это причина, почему люди заботятся о минировании децентрализации, и permissionlessness выхода на горный рынок. Однако, если это не просто большинство хэшрейт, который находится на борту с этим, но на самом деле почти все сети мощности (существенно сложнее проблема, так как существует множество мелких шахтеров в дополнение к несколько крупных), это могло бы занять несколько дней или даже недель (если это близко к 50%), время, в течение которого многое может случиться - в том числе общественный резонанс и UASF-вилка для предотвращения отката от принятой экосистемы. Если считать за еще больший срок, подобные события могут даже стимулировать людей и предприятия, чтобы стать шахтеров, для того, чтобы уменьшить влияние больших бассейна.

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

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

  • Координация между недоверчивой шахтеров (особенно близко 100% мощности) сложно, и потребуется время. Чем больше времени проходит, тем менее выгоден откат будет (см. выше), и тем больший урон может быть нанесен экосистеме (см. Следующий пункт).
  • Многочасовой (в лучшем случае) или недели (в худшем случае) откат будет монументально навредить экосистеме, и, вероятно, подорвет общественное доверие в системе до такой степени, что он резко снизит рентабельность многих заинтересованных сторон (включая шахтеров и биржа сама!).
  • Даже не обращая внимание на все выше, горняки могут не быть готовы взять взятку откат из-за юридических причин, если они публично известны (они в основном в настоящее время). Они могут в равной степени не хотят брать ворованные деньги в качестве взятки, так это сокращение в обоих направлениях. Этот момент становится слабее, если горных экосистем является более децентрализованной, но что бы также сделать координацию сложнее.
  • Как я указывал выше, в крайнем случае, когда такой откат происходит на самом деле, общественность имеет времени, чтобы среагировать. Если достаточно большой группы экономически заинтересованных сторон в сети отказываются принимать отката, шахтеры не имеют никакого выбора, кроме как согласиться с этим. Это крайний вариант, и скорее всего ущерб по собственной экосистемы, но это вариант.

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

+71
minesh patel 19 мая 2018 г., 4:40:45

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

Кроме того, есть сех.ввода-вывода, который обеспечивает для GH/s для некоторых БТЦ. Но поскольку трудность увеличивается с течением времени, ГХ/с значение уменьшается. У GH/s будет моей навсегда, но не будет времени, где власть не может сделать каких-либо существенных полезных ископаемых? Не в случае с пользовательского оборудования тоже? Вы можете остановиться на этом.

+61
venkatesh 20 янв. 2016 г., 3:38:47

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

$200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil