|
6 ноября 2012, 9:07:26 AM | # 1 |
Сообщения: 980
цитировать ответ |
Re: Что команда пинг моего Bitcoin узла, чтобы отправить мне X количество блоков?
Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome" Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e подробнее... Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru Что команда пинг моего Bitcoin узла, чтобы отправить мне X количество блоков?
|
6 ноября 2012, 3:50:34 PM | # 2 |
Сообщения: 125
цитировать ответ |
Re: Что команда пинг моего Bitcoin узла, чтобы отправить мне X количество блоков?
Получил 1806 Биткоинов
Реальная история. https://en.bitcoin.it/wiki/Protocol_specification#getblocks
Не совсем настроить, чтобы дать определенное количество, вы просто дать ему хэш для последнего блока у вас есть (или несколько позднее), и он будет посылать список ничего более нового (до 500 блоков). |
6 ноября 2012, 3:51:59 PM | # 3 |
Сообщения: 1246
цитировать ответ |
Re: Что команда пинг моего Bitcoin узла, чтобы отправить мне X количество блоков?
https://en.bitcoin.it/wiki/Protocol_specification#getblocks Не совсем настроить, чтобы дать определенное количество, вы просто дать ему хэш для последнего блока у вас есть (или несколько позднее), и он будет посылать список ничего более нового (до 500 блоков). что фактический код, для протокола, который не имеет ничего общего с API узла Bitcoin Xenland вы, вероятно, хотите Код: getblockhash ($ индекс); |
6 ноября 2012, 4:00:50 PM | # 4 |
Сообщения: 125
цитировать ответ |
Re: Что команда пинг моего Bitcoin узла, чтобы отправить мне X количество блоков?
https://en.bitcoin.it/wiki/Protocol_specification#getblocks Не совсем настроить, чтобы дать определенное количество, вы просто дать ему хэш для последнего блока у вас есть (или несколько позднее), и он будет посылать список ничего более нового (до 500 блоков). что фактический код, для протокола, который не имеет ничего общего с API узла Bitcoin Это правильно, насколько я знаю, не существует какой-либо способ получить несколько блоков из интерфейса RPC (если это не изменилось в последних версиях), но если вы подключаетесь через интерфейс P2P будет выплевывать список довольно быстро. В зависимости от приложения, которое проще и исходный вопрос был не очень специфичен. |
6 ноября 2012, 4:11:40 PM | # 5 |
Сообщения: 1652
цитировать ответ |
Re: Что команда пинг моего Bitcoin узла, чтобы отправить мне X количество блоков?
Это правильно, насколько я знаю, не существует какой-либо способ получить несколько блоков из интерфейса RPC (если это не изменилось в последних версиях) Последние версии поддерживают JSON-2,0 "партия" запросы, так что вы можете объединить несколько RPC вызовов в один пакет и получить список ответов. |
6 ноября 2012, 4:38:30 PM | # 6 |
Сообщения: 125
цитировать ответ |
Re: Что команда пинг моего Bitcoin узла, чтобы отправить мне X количество блоков?
Это правильно, насколько я знаю, не существует какой-либо способ получить несколько блоков из интерфейса RPC (если это не изменилось в последних версиях) Последние версии поддерживают JSON-2,0 "партия" запросы, так что вы можете объединить несколько RPC вызовов в один пакет и получить список ответов. Ах, очень приятно. Я использую интерфейс P2P, чтобы получить исходные данные блока, так как до того, как getblock вызовы RPC были стандартными (казалось предпочтительнее зондажами различные getblock патчи и идти в ногу с изменением аргументов для них) и даже в довольно последних версиях производительность, кажется, гораздо лучше привязывая этот путь, но я признаю, что я не пробовал еще раз, что в последнее время. |
6 ноября 2012, 9:20:19 PM | # 7 |
Сообщения: 980
цитировать ответ |
Re: Что команда пинг моего Bitcoin узла, чтобы отправить мне X количество блоков?
Спасибо за информацию всем!
Вся эта информация идет к проекту Клиента документации Bitcoin псевдокода: https://github.com/Xenland/Bitcoin-Pseudocode-Client/tree/gh-pages Кто-нибудь знает, как запросить узел Bitcoin с внешней стороны с getblocks? Я попытался свернуться запросом с моим узлом Bitcoin в "JSON" формиат и Bitcoin клиент говорит неизвестное сообщение или недопустимое сообщение. Любые ссылки исходного кода BTC для подключения к интерфейсу p2p? |
6 ноября 2012, 9:32:47 PM | # 8 |
Сообщения: 1302
цитировать ответ |
Re: Что команда пинг моего Bitcoin узла, чтобы отправить мне X количество блоков?
Чтобы использовать протокол p2p изрыгать блоков, вы должны реализовать изрядное кусок протокола; достаточно, чтобы убедить узел, что он разговаривает с другим узлом.
Если вы просто хотите увидеть блоки, разбор блоков файлов супер просто. Единственная загвоздка в том, что вам нужно, чтобы построить свой собственный индекс, как вы идете. Satoshi клиент сохраняет индекс, но в системе BDB, и взаимодействие с этим, вероятно, гораздо больше работы, чем делать это самостоятельно. |
7 ноября 2012, 3:01:14 AM | # 9 |
Сообщения: 125
цитировать ответ |
Re: Что команда пинг моего Bitcoin узла, чтобы отправить мне X количество блоков?
Вот основной пример подключения к интерфейсу P2P в Perl, это просто подключается и выкладывает новые блоки в сыром виде на STDOUT и отладочной информации о соединении на STDERR, но как только вы получили соединение работает вы можете посылать команды через это, просто нужно быть осторожными о заказах сетевых байт, что Bitcoin использует.
Код: #! / USR / бен / Perl использовать IO :: Socket; использовать IO :: Выбрать; использовать Digest :: SHA, $ | = 1; $ = IO BTC :: Socket :: INET->новый (PeerAddr =>"локальный", PeerPort =>'8333', Proto =>«TCP») или умереть "Разъем"; $ Сель = IO :: Select->новый (); $ sel->добавить ($ BTC); $ Р ="\ X2c \ x7E \ x00 \ x00"; # Version $ Р. ="\ X01 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00"; # Сервисы $ H = Sprintf ( '% х', время ()), в то время (длина ($ ч)<16) {$ H ="0". $ Ч;} $ Ч = назад ($ ч); $ р = упаковка ( 'ч *', $ ч). # Unix Timestamp $ Р. ="\ X01 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ XFF \ XFF"; # Для IP $ Р. ="\ X7f \ x00 \ x00 \ x01 \ x20 \ x8d"; # 127.0.0.1 - порт 8333 $ Р. ="\ X01 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ XFF \ XFF"; # От IP $ Р. ="\ X00 \ x00 \ x00 \ x00 \ x20 \ x8d"; # 0.0.0.0 - Порт 8333 @chars = ( 'а' .. 'е', 0..9); $ RR = присоединиться к '', отображение {$ [Rand символы @chars]} 1..16; . $ Р = упаковка ( 'Н *', $ р-р); # Случайные Уникальный ID $ Р. ="\ X00 \ x00 \ x00 \ x00 \ x00"; нет # Нет UA / Блоки sendpacket ( 'версия', $ р); в то время как ($ gotver == 0) { ($ С, $ р) = readpacket (); если ($ C экв 'версия') {$ gotver = 1;} сон (1);} sendpacket ( 'verack', ''); в то время как (1) { ($ С, $ р) = readpacket (); если ($ с эк «и») { sendpacket ( 'GetData', $ р); } если ($ C экв 'блок') { $ BLK = распаковка ( 'Н *', $ р); печать $ BLK."\ п"; } сон (1);} близко ($ BTC); к югу sendpacket {мой $ с = сдвиг (@_) мой $ р = сдвиг (@_); мой $ о ="\ Xf9 \ XBE \ XB4 \ xd9"; # Магия для основной сети в то время как (длина ($ с)<12) {$ гр. ="\ x00";.} $ О = $ с; #Command мой $ ч = Sprintf ( '% х', длина ($ р)), в то время (длина ($ ч)<8) {$ H ="0". $ Ч;} $ Ч = назад ($ ч); $ O = упаковка ( 'ч *', $ ч). # Payload длина $ Ч = Дайджест :: ША :: sha256 (дайджест :: ША :: sha256 ($ р)); $ H = распаковка ( 'Н *', $ ч);. $ O = упаковка ( 'Н *', зиЬзЬг ($ ч, 0,8)); # Контрольная сумма . $ А = $ р; # Payload печать $ $ о BTC; печать STDERR "Направлено $ с (".length ($ р)." байт полезной нагрузки) \ П"; } к югу readpacket { если (! $ sel->can_read (1)) {возвращают 0;} мой @x мой $ х, в то время как (1) {чтение ($ $ БТД х, 1); $ х = распаковывать ( 'H *', $ х); нажимные (@ х, $ х), если ($ # х>3) {сдвиг (@x);} если (Join ( '', @ х) эк "f9.be.b4.d9") { мои $ ЦМД мой $ LEN; чтения ($ $, BTC CMD, 12); чтение ($ BTC, $ Len, 4); чтение ($ BTC, $ х, 4); $ Х = распаковка ( 'ч *', $ LEN); $ х = обратный ($ х); $ Len = гекс ($ х); $ Х = измельчить ($ CMD), в то время ($ х экв "\ x00") {$ Х = измельчить ($ CMD);}. $ CMD = $ х; печать STDERR "Читать $ CMD ($ Len байт полезной нагрузки) \ п"; если ($ Len>0) {чтение ($ BTC, $ х, $ LEN); возвращение ($ CMD, $ х);} еще {возвращение ($ CMD, '');} } } } |