|
![]() |
# 1 |
Сообщения: 980
цитировать ответ |
![]()
Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome" Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e подробнее... Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru Как я прочитал blockchain Bitcoin с API или библиотеки с языком программирования, как PHP, Python или Java?
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 2 |
Сообщения: 1892
цитировать ответ |
![]()
Получил 1806 Биткоинов
Реальная история. Как я прочитал blockchain Bitcoin с API или библиотеки с языком программирования, как PHP, Python или Java? использовать libbitcoin |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 3 |
Сообщения: 1050
цитировать ответ |
![]() libbitcoin: https://github.com/libbitcoin/libbitcoin
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 4 |
Сообщения: 112
цитировать ответ |
![]() libbitoin, как я вижу, в CPP, не PHP или Java, Python, как OP упоминалось.
Я думаю, что он заинтересован в использовании этого на Linux, а не с помощью каких-либо исполняемых файлов. Я ищу для этого тоже, но не нашли ничего еще. То, что я обнаружил, что вы можете надежно использовать с РНР: https://blockchain.info/api https://blockchain.info/q Для того, чтобы исследовать blockchain. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 5 |
Сообщения: 1050
цитировать ответ |
![]() libbitoin, как я вижу, в CPP, не PHP или Java, Python, как OP упоминалось. SWIG!Я тонкий, он заинтересован в использовании этого на Linux, а не с помощью каких-либо исполняемых файлов. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 6 |
Сообщения: 112
цитировать ответ |
![]() libbitoin, как я вижу, в CPP, не PHP или Java, Python, как OP упоминалось. SWIG!Я тонкий, он заинтересован в использовании этого на Linux, а не с помощью каких-либо исполняемых файлов. Хорошо, я дам, что попробовать также, спасибо за информацию |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 7 |
Сообщения: 1892
цитировать ответ |
![]() libbitoin, как я вижу, в CPP, не PHP или Java, Python, как OP упоминалось. да, у него есть питон фронтэнда |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 8 |
Сообщения: 980
цитировать ответ |
![]() Хорошие ответы товарищей, libbitcoin должен работать штраф за то, что мне нужно
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 9 |
Сообщения: 980
цитировать ответ |
![]() Так как я использую эту libbitcoin вещь, например, что-то простое, как баланс конкретного адреса, или список деталей конкретного адреса? (С питоном)
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 10 |
Сообщения: 1050
цитировать ответ |
![]() Так как я использую эту libbitcoin вещь, например, что-то простое, как баланс конкретного адреса, или список деталей конкретного адреса? (С питоном) не знаю, попробуйте прочитать апи ... им не в libbitcoin гуру. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 11 |
Сообщения: 980
цитировать ответ |
![]() Libbitcoin довольно запутанный, даже просматривая исходный код, есть какая-либо альтернатива libbitcoin, которые могли бы помочь мне запросить blockchain?
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 12 |
Сообщения: 1428
цитировать ответ |
![]() Оружейный совершенно это. Это C ++ доступ в Python (через SWIG). Вы только когда-либо трогать питона.
Я не в моем компьютере разработки в настоящее время, но есть пример кода на моем GitHub страница (Хотя многие из примеров были созданы до восстановления памяти, то они будут в основном по-прежнему работают) Код: от armoryengine импорта * (Обратите внимание, что этот код отвлеченный, так как я не могу проверить это, где я, но синтаксис почти правильно)печать '\ п \ nLoading Blockchain из:', BLK0001_PATH BDM_LoadBlockchainFile () # дополнительный аргумент, чтобы указать местоположение blk0001.dat печать «Готово!» печать '\ п \ nCurrent Top Блок:'., TheBDM.getTopBlockHeader () getBlockHeight () TheBDM.getTopBlockHeader (). Pprint () Тх = TheBDM.getTxByHash (hex_to_binary ( '9c633b5689e462ddf3d52a6edc64226cedd1e1749d0b8e2f70cd9550bfa74c72')) tx.pprint () # Создать и зарегистрировать кошелек перед вызовом LoadBlockchainFile, чтобы объединить сканирование # В настоящее время, это будет пересканировать blockchain cppWallet = Cpp.BtcWallet () cppWallet.addAddress_1_ (hex_to_binary ( '9c633b56899c633b56899c633b56899c633b5689')) # hash160 TheBDM.registerWallet (cppWallet) TheBDM.scanBlockchainForTx (cppWallet) печать cppWallet.getSpendableBalance () unspentTxOuts = cppWallet.getSpendableTxOutList () для utxo в unspentTxOuts: utxo.pprintOneLine () Когда я прихожу домой поздно, я могу разместить больше примеров кода для того, как получить доступ, что вы хотите. Если вы скажете мне, что вы пытаетесь сделать с ним, я могу больше писать образцы направлены коды для вас. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 13 |
Сообщения: 980
цитировать ответ |
![]() Оружейный совершенно это. Это C ++ доступ в Python (через SWIG). Вы только когда-либо трогать питона. Я не в моем компьютере разработки в настоящее время, но есть пример кода на моем GitHub страница (Хотя многие из примеров были созданы до восстановления памяти, то они будут в основном по-прежнему работают) Код: от armoryengine импорта * (Обратите внимание, что этот код отвлеченный, так как я не могу проверить это, где я, но синтаксис почти правильно)печать '\ п \ nLoading Blockchain из:', BLK0001_PATH BDM_LoadBlockchainFile () # дополнительный аргумент, чтобы указать местоположение blk0001.dat печать «Готово!» печать '\ п \ nCurrent Top Блок:'., TheBDM.getTopBlockHeader () getBlockHeight () TheBDM.getTopBlockHeader (). Pprint () Тх = TheBDM.getTxByHash (hex_to_binary ( '9c633b5689e462ddf3d52a6edc64226cedd1e1749d0b8e2f70cd9550bfa74c72')) tx.pprint () # Создать и зарегистрировать кошелек перед вызовом LoadBlockchainFile, чтобы объединить сканирование # В настоящее время, это будет пересканировать blockchain cppWallet = Cpp.BtcWallet () cppWallet.addAddress_1_ (hex_to_binary ( '9c633b56899c633b56899c633b56899c633b5689')) # hash160 TheBDM.registerWallet (cppWallet) TheBDM.scanBlockchainForTx (cppWallet) печать cppWallet.getSpendableBalance () unspentTxOuts = cppWallet.getSpendableTxOutList () для utxo в unspentTxOuts: utxo.pprintOneLine () Когда я прихожу домой поздно, я могу разместить больше примеров кода для того, как получить доступ, что вы хотите. Если вы скажете мне, что вы пытаетесь сделать с ним, я могу больше писать образцы направлены коды для вас. Nice Я слышал о оружейном, но я думал, что это просто GUI-клиент с расширенными возможностями. Постараюсь его с питоном посмотреть, как она есть. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 14 |
Сообщения: 1428
цитировать ответ |
![]() Ну вот! Я просто собрать сценарий, который не только сканирует blockchain, он делает что-то полезное! (Это в нижней части поста)
Задержки будут варьироваться в зависимости от ОЗУ. Если у вас есть много оперативной памяти, просто обо всем blockchain будет кэшировать с первого сканирования, и заново сканируется будет почти мгновенным. Если вы хотите, чтобы избежать пересканирует, убедитесь, что все будет добавлен в ваш кошелек и зарегистрирован TheBDM.registerWallet до BDM_LoadBlockChain (). Пример сценарий Python в нижней части этого поста производится следующий вывод (изменения сложности): Код: Соберите все изменения сложности ... Блок Diff Дата 0 1,0 2009-Jan-03 1:15 вечера 32256 1.2 2009-Dec-30 1:11 утра 34272 1,3 2010-Jan-11 5:48 вечера 36288 1,3 2010-Jan-25 8:07 утра 38304 1,8 2010-Февраль-04 4:43 вечера 40320 2.5 2010-февраль-14 6:52 вечера 42336 3,8 2010-Февраль-24 3:41 утра 44352 4.5 2010-Mar-07 8:14 вечера 46368 4,6 2010-Mar-21 6:54 вечера 48384 6,1 2010-Apr-01 7:07 утра 50400 7,8 2010-Apr-12 4:39 утра 52416 11,5 2010-Apr-21 5:52 вечера 54432 12,8 2010-May-04 5:46 утра 56448 11,8 2010-May-19 10:13 утра 58464 16.6 2010-May-29 9:57 утра 60480 17,4 2010-Jun-11 7:26 вечера 62496 19,4 2010-Jun-24 8:27 утра 64512 23.5 2010-Июль-05 9:57 вечера 66528 45,4 2010-Июль-13 4:03 утра 68544 181,5 2010-Июль-16 12:29 вечера 70560 244,2 2010-Июль-26 10:42 вечера 72576 352,2 2010-Август-05 3:46 вечера 74592 511,8 2010-Август-15 7:11 утра 76608 623,4 2010-Август-26 7:13 вечера 78624 712,9 2010-Sep-08 1:04 утра 80640 917,8 2010-Sep-18 10:04 вечера 82656 1318,7 2010-Sep-28 3:58 вечера 84672 1378,0 2010-Октябрь-12 1:35 утра 86688 2149,0 2010-Октябрь-21 1:13 утра 88704 3091,7 2010-Октябрь-30 6:58 вечера 90720 4536,4 2010-Ноябрь-09 7:29 утра 92736 6866,9 2010-Ноябрь-18 1:44 вечера 94752 8078,2 2010-Nov-30 11:37 утра 96768 12252,0 2010-Dec-09 5:20 вечера 98784 14484,2 2010-Dec-21 1:34 вечера 100800 16307,4 2011-Jan-03 12:10 утра 102816 18437,6 2011-Jan-15 9:26 утра 104832 22012,4 2011-Jan-27 3:16 утра 106848 25997,9 2011-Февраль-07 11:53 вечера 108864 36459,9 2011-Февраль-18 12:15 утра 110880 55589,5 2011-Февраль-27 4:59 утра 112896 76192,6 2011-Mar-09 10:25 утра 114912 68977,8 2011-Mar-24 10:39 вечера 116928 82345,6 2011-Apr-05 4:09 вечера 118944 92347,6 2011-Apr-18 3:49 утра 120960 109670,1 2011-Apr-29 10:53 вечера 122976 157416,4 2011-May-09 5:17 вечера 124992 244112,5 2011-May-18 6:04 вечера 127008 434877,0 2011-May-26 2:41 вечера 129024 567269,5 2011-Jun-06 8:25 утра 131040 876954,5 2011-Jun-15 9:49 утра 133056 1379192,3 2011-Jun-24 7:45 утра 135072 1563028,0 2011-Июль-06 4:35 вечера 137088 1690895,8 2011-Июль-19 3:23 вечера 139104 1888786,7 2011-Август-01 4:11 утра 141120 1805700,8 2011-Август-15 7:44 вечера 143136 1777774,5 2011-Август-30 1:15 утра 145152 1755425,3 2011-Sep-13 5:31 утра 147168 1689334,4 2011-Sep-27 6:47 вечера 149184 1468195,4 2011-Октябрь-13 9:44 вечера 151200 1203461,9 2011-Октябрь-30 11:42 вечера 153216 1192497,8 2011-Ноябрь-14 1:56 утра 155232 1090715,7 2011-Ноябрь-29 9:20 утра 157248 1155038,3 2011-Dec-12 2:42 вечера 159264 1159929,5 2011-Dec-26 1:43 вечера 161280 1250757,7 2012-Jan-08 1:26 вечера 163296 1307728,4 2012-Jan-21 10:55 вечера 165312 1379647,4 2012-Февраль-04 5:32 утра 167328 1376302,3 2012-Февраль-18 6:24 утра 169344 1496978,6 2012-Mar-02 3:25 утра 171360 1498294,4 2012-Mar-16 4:09 утра 173376 1626553,5 2012-Mar-29 1:41 утра 175392 1577913,5 2012-Apr-12 12:04 вечера Взял 0,2 секунды, чтобы собрать список сложности А вот сам сценарий. Это иллюстрирует разнообразие способов доступа к данным блока. В основном, сканирование адресов в blockchain с балансами и неизрасходованных выходов, и ходить через каждый TxOut каждого Tx каждого блока - мы захватываем адрес из когда-либо стандартного TxOut и добавить его в набор () объекта, который позволяет только уникальные адреса. Код: от armoryengine импорта * # ЗАМЕТКА: # ВСЕ АДРЕСА ТЕЧЕНИЕ ВСЕГО ЛИШЬ 20-BYTE бинарной форме (hash160 / addr20) # Используйте hash160_to_addrStr () и addrStr_to_hash160 () для преобразования ... печать '\ п \ nCreating новый C ++ бумажник, добавить несколько адресов ... cppWallet = Cpp.BtcWallet () cppWallet.addAddress_1_ (hex_to_binary ( '11b366edfc0a8b66feebae5c2e25a7b6a5d1cf31')) # hash160 cppWallet.addAddress_1_ (addrStr_to_hash160 ( '1EbAUHsitefy3rSECh8eK2fdAWTUbpVUDN')) # addrStr cppWallet.addAddress_1 _ ( '\ X1B ~ \ xa7 * \ x85 \ т \ x12 \ xb7 = \ xd4G \ xf3 \ XBD \ xc1 \ x00 \ XF1 \ x00 \ x8b \ XDE \ XB0') # двоичный Печать «Адрес в этом кошельке:» для г в диапазоне (cppWallet.getNumAddr ()): печать '\ т', hash160_to_addrStr (cppWallet.getAddrByIndex (я) .getAddrStr20 ()) печать «\ п \ nRegistering кошелек с BlockDataManager & загрузка ... Start = RIghtNOw () TheBDM.registerWallet (cppWallet) BDM_LoadBlockchainFile () # дополнительный аргумент, чтобы указать местоположение blk0001.dat печать 'Загрузка blockchain принял% 0.1f cек' % (RightNow () - начало) topBlock = TheBDM.getTopBlockHeight () печать '\ п \ nCurrent Top Блок:', topBlock TheBDM.getTopBlockHeader (). Pprint () # Добавление новых адресов - пересканируют (который будет очень быстро, если вы ahve много оперативной памяти) cppWallet.addAddress_1_ (hex_to_binary ( '0cdcd0f388a31b11ff11b1d8d7a9f978b37bc7af')) TheBDM.scanBlockchainForTx (cppWallet) печать '\ п \ nBalance этого кошелька:', coin2str (cppWallet.getSpendableBalance ()) напечатает неизрасходованных выходы: ' unspentTxOuts = cppWallet.getSpendableTxOutList (topBlock) для utxo в unspentTxOuts: utxo.pprintOneLine () печать «\ п \ История nTransaction этого кошелька:» бухгалтерская книга = cppWallet.getTxLedger () для ля в книге: le.pprintOneLine () печать «\ п \ п» Печать '-' * 80 печать «Теперь-то совсем другое ... Start = RIghtNOw () печать '\ п \ nCollect все изменения сложности ... prevDiff = 0 для ч в xrange (0, topBlock + 1): заголовок = TheBDM.getHeaderByHeight (ч) currDiff = header.getDifficulty () если не prevDiff == currDiff: печать ул (ч) .rjust (10), печать ( '% 0.1f' % currDiff) .rjust (10), печать '\ т', unixTimeToFormatStr (header.getTimestamp ()) prevDiff = currDiff печать 'Взяла% 0.1f секунд, чтобы собрать список затрудненного' % (RightNow () - начало) печать «\ п \ nCount число уникальных адресов в blockchain» Start = RIghtNOw () allAddr = множество () для ч в xrange (0, topBlock + 1): если ч% 10000 == 0: печать '\ tScanned% D блоков' % ч заголовок = TheBDM.getHeaderByHeight (ч) txList = header.getTxRefPtrList () для ТХ в txList: для ноута в диапазоне (tx.getNumTxOut ()): txout = tx.getTxOutRef (ноут) если txout.isStandard (): allAddr.add (txout.getRecipientAddr ()) Печать 'Принимала% 0.1f секунд, чтобы подсчитать все адреса' % (RIghtNOw () - старт) напечатает Есть% г уникальные адреса в blockchain! % Len (allAddr) Это сканирование ниже уровня, чем то, что происходит в Оружейной, так что вы в основном с использованием C ++ объектов. Вы можете найти полный список всех методов BlockObjRef.h а также BlockUtils.h. Пожалуйста, задавайте вопросы, если что-то не понятно, или если вы хотите использовать некоторые функции не здесь, пример. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 15 |
Сообщения: 2212
цитировать ответ |
![]() Если вы скажете мне, что вы пытаетесь сделать с ним, я могу больше писать образцы направлены коды для вас. Я лично хочу, чтобы получить временную метку блоков с определенной высоты блока один раз в день, но не удосужился смотреть на любом libbitcoin или Оружейной.В идеале было бы что-то вроде "TheBDM.getHeaderByHeight (12345) .getTimestamp ()"... Кроме того, для оружейного я до сих пор запустить bitcoind, чтобы получить blockchain обновляется, не так ли? Редактировать: Ничего себе - это огромная, вам удастся ответить на мои посты, прежде чем я даже размещать их! Edit2: И я даже догадывался как имена функций правильно к письму! Это становится жутко ... |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 16 |
Сообщения: 1428
цитировать ответ |
![]() Если вы скажете мне, что вы пытаетесь сделать с ним, я могу больше писать образцы направлены коды для вас. Я лично хочу, чтобы получить временную метку блоков с определенной высоты блока один раз в день, но не удосужился смотреть на любом libbitcoin или Оружейной.В идеале было бы что-то вроде "TheBDM.getHeaderByHeight (12345) .getTimestamp ()"... Кроме того, для оружейного я до сих пор запустить bitcoind, чтобы получить blockchain обновляется, не так ли? Чтобы использовать Оружейной, вам нужно bitcoind работает, чтобы получить blockchain обновления и отправить&получить сделки. Для примера кода выше, вам нужно только иметь blk0001.dat файл, созданный в bitcoind, но он не должен быть запущен при запуске сценария. Изменить: Ого, я должен иметь телепатии. Рад, что смог ответить на ваш вопрос ... прежде, чем вы попросили его! |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 17 |
Сообщения: 980
цитировать ответ |
![]() Как один раз запросить баланс в Bitcoin адрес с оружейной? есть ли какие-либо расчеты, связанные (например, цикл по истории ТХ и подвести итог баланса), или я могу просто назвать его и распечатать простой баланс?
Im»уверен, что многие программисты могли бы принести пользу решения этого вопроса, чтобы написать свое собственное программное обеспечение, чтобы использовать арсенал для как сделать свой собственный сайт Blockchain.info или ж / д. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 18 |
Сообщения: 1428
цитировать ответ |
![]() Как один раз запросить баланс в Bitcoin адрес с оружейной? есть ли какие-либо расчеты, связанные (например, цикл по истории ТХ и подвести итог баланса), или я могу просто назвать его и распечатать простой баланс? Im»уверен, что многие программисты могли бы принести пользу решения этого вопроса, чтобы написать свое собственное программное обеспечение, чтобы использовать арсенал для как сделать свой собственный сайт Blockchain.info или ж / д. Код был в моем примере, но я предполагаю, что мой пример был слишком длинным. Так вот извлечение из него. Код: от armoryengine импорта * cppWallet = Cpp.BtcWallet () cppWallet.addAddress_1_ (addrStr_to_hash160 ( '1EbAUHsitefy3rSECh8eK2fdAWTUbpVUDN')) # addrStr TheBDM.registerWallet (cppWallet) BDM_LoadBlockchainFile () TheBDM.scanBlockchainForTx (cppWallet) fullBalance = cppWallet.getFullBalance () печать '\ п \ nBalance этого кошелька:', coin2str (fullBalance) |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 19 |
Сообщения: 980
цитировать ответ |
![]() Как один раз запросить баланс в Bitcoin адрес с оружейной? есть ли какие-либо расчеты, связанные (например, цикл по истории ТХ и подвести итог баланса), или я могу просто назвать его и распечатать простой баланс? Im»уверен, что многие программисты могли бы принести пользу решения этого вопроса, чтобы написать свое собственное программное обеспечение, чтобы использовать арсенал для как сделать свой собственный сайт Blockchain.info или ж / д. Код был в моем примере, но я предполагаю, что мой пример был слишком длинным. Так вот извлечение из него. Код: от armoryengine импорта * cppWallet = Cpp.BtcWallet () cppWallet.addAddress_1_ (addrStr_to_hash160 ( '1EbAUHsitefy3rSECh8eK2fdAWTUbpVUDN')) # addrStr TheBDM.registerWallet (cppWallet) BDM_LoadBlockchainFile () TheBDM.scanBlockchainForTx (cppWallet) fullBalance = cppWallet.getFullBalance () печать '\ п \ nBalance этого кошелька:', coin2str (fullBalance) Ах да, я заметил, что часть вашего кода, я просто предположил, что есть быстрый способ идти об этом, так как это занимает несколько секунд, чтобы сканировать блок цепь на один адрес, и я ищу способ для сканирования и обновления база данных по нескольким адресам. Значит ли это звук возможно, или я застрял с этим маршрутом вы представили мне? Спасибо за вашу помощь кстати, я ценю это. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 20 |
Сообщения: 1428
цитировать ответ |
![]() Ах да, я заметил, что часть вашего кода, я просто предположил, что есть быстрый способ идти об этом, так как это занимает несколько секунд, чтобы сканировать блок цепь на один адрес, и я ищу способ для сканирования и обновления база данных по нескольким адресам. Значит ли это звук возможно, или я застрял с этим маршрутом вы представили мне? Спасибо за вашу помощь кстати, я ценю это. Вы можете использовать столько addAddress_1_ () вызывает, как вы хотите перед повторной проверкой, и повторное сканирование будет еще такое же количество времени. Загрузка 20 адресов в ваш кошелек перед загрузкой blockchain, и он будет занимать то же время, как если бы вы загрузили в 10000. После загрузки blockchain, если добавить новые адреса в бумажнике, цепь будет вновь сканируется на "scanBlockchainForTx ()" вызов, и снова, это не будет иметь значения, сколько адресов, которые он будет принимать такое же количество времени. |
![]() ![]() |
![]() ![]() ![]() |