Биткоин ЭКП: как найти сделки, которые проводит txo успешно?

Я подозреваю, что нет хороший способ сделать это. Однако есть ли суб-оптимальный способ, чтобы найти сделки, которая проводит транзакции вывод (зная txid и индекс) с биткоин ЭКП?
Предполагая txindex=1 и чернослив=0.

Это был более общий вопрос. В моем случае:

  1. Когда я получаю txo успешно, на самом деле это UTXO.
  2. Меня интересуют только подтвержденные транзакции.

Единственным способом я могу придумать, чтобы ответить на оба вопроса перебора всех операций все блоки из txo успешно блока последнего полученного блока и mempool. Или в моем случае, я не против mempool.
Тем не менее, это громоздкое и, вероятно, я бы лучше с какой-то индексатор. Есть ли лучший способ сделать это с RPC?

+85
Jukebox 4 апр. 2013 г., 12:34:59
17 ответов

Мне нужно написать скрипт на C++ и библиотеки OpenSSL, которая принимает этот: 0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352 выполняет SHA256 хэш SHA256 с помощью функции из библиотеки OpenSSL, а затем возвращает 0b7c28c9b7290c98d7438e70b3d3f7c848fbd7d1dc194ff83f4f7cc9b1378e98 как дайджест.

Вопрос у меня заключается в том, что я получаю различные сообщения после выполнения SHA256 хэш функция: a9ce83de3a0ff3516b7c50cdd787e9f69f152f227d93c9512774231e7132e925.

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

Код

строки и SHA256(ул. строке const)
{
 неподписанные символ хэш[SHA256_DIGEST_LENGTH];
 SHA256_CTX и SHA256;
SHA256_Init(&и SHA256);
 SHA256_Update (ул.&SHA256 для,.c_str (СПО).размер());
 SHA256_Final(хэш, &и SHA256);
 stringstream СС;

 для(int я = 0; я < SHA256_DIGEST_LENGTH; я++)
{
 СС << шестигранной << в разделе setw(2) << setfill('0') << (инт)хэш - [я];
}
возвращение СС.(ул.);
}

тап_п()
{

 соіь << епси;
 соіь << и SHA256("0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352") << епси;
 возврат 0;
}
+925
Alyssia Bell 03 февр. '09 в 4:24

-salvagewallet не команду, которая выполняется из отладочной консоли. Это не один из вызовов RPC биткоин ядра. Скорее -salvagewallet - это параметр командной строки. Вы установите его в команду, которая используется для работы с Bitcoin Core или вы установите его в биткоин.conf, добавив в него salvagewallet=1 к биткоин.conf, а затем начиная с ядра биткоин.

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

+663
TracyLynn Kidder Roberson 5 авг. 2018 г., 6:34:07
Другие ответы

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


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

есть blockchain.info одна для общего питания, но это очень низкое разрешение.

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

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

Не все, что блокчейн имеет эта информация в нем не так. Возможно, мне придется выяснить, сейчас на участке.

+568
Pinaki Mukherjee 26 окт. 2019 г., 2:02:04

Если HD-кошелька только дает мне 12 слово мнемоника, как можно получить мастера открытого ключа?

+567
Shoaib Chikate 27 окт. 2010 г., 17:03:06

Я создал получая адрес в биткойн ядро, сама отправляла несколько монет из localbitcoins.com и - глупая я - удалил получения адреса от ядра биткоин.

tradeblock.com показывает сделки с "подтвержденный баланс", но я не получил монеты в бумажнике. Есть ли способ восстановить адрес в биткойн ядра?

Спасибо!

ЗЫ: я не был достаточно конкретным:

  1. Я создал "платежное требование" в Bitcoin Core и используется информация о платежах, адрес ТТО отправить монеты с моего счета localbitcoins.com .

  2. Я удалил "просил платежей" в основной биткоин кошелек, прежде чем были получены монеты.

  3. Blockchain.info шоу "всего начислено" и "конечный остаток" и я предполагаю, что сделка была заключена. Однако, после 30++ часов, монет не получил моего ядра биткоин кошелек.

Это проводка, то там висит, потому что не может найти адрес, который я отправил монеты, но удален?

@Марч: Спасибо за подсказку. Вы правы: я знаю адрес, сделка, как представляется, быть подтверждена на Tradeblock но баланс не отображается в мой основной кошелек Биткоин (полностью синхронизированы).

+550
veniaminovna83 26 мая 2011 г., 8:19:26

http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/

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

+529
user12568 21 окт. 2012 г., 15:21:05

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

Но когда дело доходит до количества входов, поле имеет переменную длину целого числа.

Это, как правило, только 1 байт (2 символа) в длину и вам не нужно ничего делать с этим, потому что биткойн-транзакции редко имеют более кодами 0xfe (253) входы.

Но что происходит, когда есть более 253 входы и размер поля увеличивается, чтобы вместить это?

Как бы вы поставили счетчик 256 входов в этой области?

https://en.bitcoin.it/wiki/Protocol_documentation#Variable_length_integer

+495
John Blake 14 нояб. 2012 г., 5:41:46

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

Я не понимаю. Не адрес уже повторно избежать, если получение/изменение адреса используется только один раз? Этот вариант означает, что каждый адрес получения будет отслеживаться по кошельку внутренне, так что расходы из нескольких "источников" вообще избежать? Не существует несколько сценариев, которые "тратят от нескольких источников" все равно неизбежны? Как это может улучшить жизнь? Не будет ли это создавать цепочки tracable "" сделок?

+415
Thibault Santonja 15 мая 2012 г., 5:45:30

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

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

Я установил биткоин-ядра в Моя Ubuntu 16.04 с помощью пакета НПА,

судо АПТ-добавить-репозитории -г НПА:биткоин/Биткоин
судо apt-получить обновление
судо apt-получить установку bitcoind -г

и я установила 200ГБ жесткий диск для синхронизации всех данных Blockchain.

каталог /mnt/xvdb/

Я знаю, что данные каталога будут ~/.биткоин

как только я начинаю синхронизации, введя bitcoind & в Linux.

Как я могу сделать его синхронизации с подключенного жесткого диска ?

+319
kishfoo 1 мая 2012 г., 5:54:00

если у меня есть 1 BTC на мой адрес, предположим, что я бегу узел добыча, что мне мешает попытке разминирования блока, в которой я провожу 1.2 БТЦ ?

Это определенный набор кода в Bitcoin Core, которые отвергает любой сделки, кто вкладывает меньше денег в сделке (входы), чем получатели получают (выходов), например, тратят больше денег, чем они были добавлены в сделке:

константный CAmount value_out = ТХ.GetValueOut();
если (nValueIn < value_out) {
 возвращение государства.Дос(100, ложь, REJECT_INVALID, "плохо-txns-в-belowout", ложь,
 strprintf("значение в (%с) < значение (%- ы)", FormatMoney(nValueIn), FormatMoney(value_out)));
}

Технически, это не проверка "баланса" адреса, поскольку в биткоин-системы, адреса пока нет остатков. Когда вы получаете биткоины, вы получите их в личной вывода (оплаты). Когда вы проводите биткоины, вам точно определить, какой выход (или выходы) вы хотите потратить и потратить все эти значения сразу.

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

Так в приведенном выше коде, проверяя каждый потратит в системе, чтобы никто receivng больше биткоинов, чем было изначально затрачено (кроме новоявленной биткоины), то предотвратить отрицательное сальдо.

В какой момент в процессе-это баланс мой адрес проверил, чтобы убедиться, что у меня есть биткоины, которые я хочу потратить ?

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


Несколько связанных, вы также можете не платить кому-то отрицательный выход:

 если (txout.nValue < 0)
 возвращение государства.Дос(100, ложь, REJECT_INVALID, "плохо-txns-Uвых-отрицательный");
+301
emma villere 7 мая 2016 г., 5:57:29

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

Так Ф.е., если у вас есть эта структура блока:

блок 5 хэш: qwertyyuiop
| тх100,tx101,tx102,tx103
в
блок 6 хэш: asdfghjklkl
| tx104,tx105,tx106,tx107,tx108
в
блок 7 хэш: zxcvbnmnbvc
tx109,tx110,tx111

Когда вы могли бы сделать listsinceblock qwertyyuiop, вы получите все транзакции в блоки старше, чем блок 5, так tx104 вплоть до tx111.

+282
Beijixing 27 мая 2018 г., 19:18:55

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

Я намерен добавить своего рода "режим восстановления" в 0.7.0 для таких ситуаций.

+225
IrishGringo 20 мая 2016 г., 17:00:05

1) место биткоин ядра в папке приложения 2) запустить терминал 3) вставить

/Программы/Биткоин На Qt.приложение/содержание/Макосе/биткоин-Qт --resetguisettings

4) Нажмите Enter

+165
Nick Huston 9 янв. 2016 г., 5:54:17

Короткий ответ: да, это будет анонимно

Длинный ответ:

Следующее относится ко всем монетам на основе Cryptonote, если не указано иное:

На блокчейн, Все адреса адреса один раз. В Bitcoin, вы призывали не использовать адреса, но Монер применяет это. Каждая новая транзакция вызывает новый адрес времени, который будет сгенерирован, таким образом, что получатель может получить приватные ключи на новый адрес времени (и, соответственно, потратить эти средства).

Кроме того, Монер использует кольцо подписи в непонятных выходы которого расходуются. Эти кольца подписи сделаны с 1 закрытого ключа (тот, который вы тратите) и произвольное открытых ключей, тех мероприятий, которые невозможно провести. Сделки вы посылаете появится, провести одно из этого набора. Хитрость заключается в том, что вы можете генерировать подписи такие, что наблюдатель (т. е., кого-то найти TX на блокчейн) можете быть уверены, что один из выходов в том, что Техас был потрачен с помощью соответствующего закрытого ключа, но не могу сказать, какой именно. На blockchain, они видят только публичные ключи ваших провел выходной, и Н других общественных ключи вы выбрали из блокчейна.

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

Так вот, дьявол в деталях. Есть и другие способы умозаключения могут быть сделаны, такие как конкретные суммы, которые тратятся (т. е. если вы отправили очень определенное количество пыли, это единственный выход, что определенную сумму на Blockchain). Протокол Cryptonote разбивает суммы по номиналам (т. е., отправив 153 Монер будет создать три outouts, 100 Монер, Монер 50, и 3 Монер, так это намного проще, чтобы скрыть). Монер в настоящее время работает над адаптацией gmaxwell по конфиденциальным операциям (https://lab.getmonero.org/pubs/MRL-0005.pdf), который может быть использован с Кольцо подписей, так что этот проспект будет полностью перекрыт (это Монер только, другие Cryptonote монеты не имеют).

Так что да, если вы используете Монер, ваши сделки будут частными. Cryptonote является состояние искусства в блокчейн конфиденциальности, хотя Zerocash может пополнить его, когда он будет выпущен, хотя Zerocash также имеет проблемы, так что это будет интересное зрелище.

Кстати, все документы по https://lab.getmonero.org/ стоит читать, если вы хотите знать больше о деталях.

+99
Catherine15 1 июн. 2016 г., 7:31:16

От страта,я знаю, что последние состоят из "Coinb1 +Extranonce1 + Extranonce2 + Coinb2".

Как Extranonce2_size изменить ?

Изменится ли Extranonce2_size, когда я подключиться к пулу?

+37
Joan Frances 17 апр. 2013 г., 12:18:28

Мне кажется, что поле time_lock_delta в ЛНД соответствует тому, что Болт#7 ссылается как cltv_expiry_delta. Что спецификация объясняет, как "количество блоков, он будет вычесть из входящего HTLC по cltv_expiry".

Таким образом, подразделение будет количество блоков.

+27
lucifer 8 сент. 2019 г., 19:36:10

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

Для этого вам нужны две вещи:

1) Какой-то инструмент, который может подготовить и представить биткоин кассовых операций.

2) закрытый ключ учетной записи(ы) биткоин наличные деньги хранятся в.

+13
apathos 19 апр. 2017 г., 21:25:50

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

$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