Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
6 января 2011, 6:38:27 PM   # 1
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я переделки мой старый «monitorreceived» патч, чтобы догнать с последними изменениями JSON API, и я ищу для обратной связи.

Новые методы, которые я уже реализованы:

  • monitorblocks [Монитор = истинный]: Отправляет JSON-RPC уведомления когда новые блоки принимаются.
  • Возвращает список URL-адресов, которые мониторинг новых блоков: listmonitored
  • getblock <глубина> Возвращает информацию о блоке на глубине <глубина>

getblock / monitorblocks предоставить эту информацию (это один из -testnet блоков):
Код:
{
 "гашиш":"000000002eb339613fd83ea65f3620cc85a8247893ea7f1f85e40fc9632db50f",
 "blockcount": 21109,
 "версия": 1,
 "merkleroot":"c0efb898417b55dbec645eeda3e5a3c092c22e21e17f423876e858bc223e721c",
 "время": 1294269726,
 "данное время": 595884571,
 "трудность": 4.81431771,
 "Техас": [
   "ea214bb68aeca12eea6e8467b3b72dcf4c3aef0de015e5d21b51d63ed9fba1a9",
   "90727f2409ea326fcb5e218c1c4213608bf3f2e9d18b3191e52fff86ccda7701"
  ],
 "hashprevious":"0000000002889316c2e34614eadcafea44cf0899945dde0da0fa7a765058aca6"
}

Уведомление монитор JSON-RPC оборачивает эту информацию с помощью вызова "monitorblock" -- видеть http://gavinpostbin.appspot.com/15depef именно то, что уведомление выглядит.

Я думал о добавлении уведомления для 0-подтверждения Транзакции, тоже; что-то вроде:

monitortx [Монитор = истина]: POST к URL, когда Транзакции (отправляет и получает) принимаются.

Информация, размещенная будет таким же, как вы получите от вызова gettransaction, и я изменю listmonitored возвращать списки { "категория" : Блок / TX, "URL" : URL}.

Возможные причины НЕ чтобы добавить это магистральный Bitcoin:

1. Я использую повышение :: Xpressive (библиотека регулярных выражений) для разбора URL. Bitcoin уже зависит от многих других частей Boost, и Xpressive скомпилирован как зависимость заголовка только (без каких-либо изменений в Makefiles) ... но я не удивлюсь, если с помощью Xpressive вызывает проблемы на некотором компиляторе где-то.

2. Проводки по протоколу HTTPS: URL-адрес не будет работать, если вы работаете на Windows, (все окна / MinGW специалисты хотят взять другую трещину на полный рабочий OpenSSL?).

3. В связи с HTTPS / SSL: если вы POST транзакции в не Ssl URL, кто подслушивал ваши пакеты будут иметь возможность выяснить, какие Bitcoin адреса принадлежат вам. Это потенциальная проблема конфиденциальности.

Как всегда, обратная связь, поощрение, и реальности проверки радушны.
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен


Как заработать Биткоины?
Без вложений. Не майнинг.


6 января 2011, 8:59:42 PM   # 2
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

Получил 1806 Биткоинов
Реальная история.





+1, я думаю, что эта функция должна идти вверх по течению

Не уверен, что происходит с OpenSSL на Windows. OpenSSL SSL_ * C API работает для меня, при использовании Fedora 13/14 + их установки MinGW, где OpenSSL библиотеки DLL приходят предварительно построены. Установщик Windows cpuminer (который работает 100% на Linux) судов OpenSSL как CURL зависимость. Я знаю, что точка данных не очень полезно, но хорошо, там.
jgarzik сейчас офлайн Пожаловаться на jgarzik   Ответить с цитированием Мультицитирование сообщения от jgarzik Быстрый ответ на сообщение jgarzik

6 января 2011, 9:06:45 PM   # 3
 
 
Сообщения: 1372
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

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

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

10 февраля 2011, 6:21:59 AM   # 4
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

Я думаю, что мы должны идти вперед с «monitorblock», потому что это просто и сразу же полезно. monitortx требует более сложного API, что specifes как Bitcoin должен выбрать (спичку), какие операции с POST.

Похожие RPC API:

     monitorblocks добавить URL [SendData]

          Добавить URL в список тех мониторинга входящих блоков.
          SendData = истина: Bitcoin будет посылать содержимое блока в формате JSON
          SendData = ЛОЖЬ (по умолчанию): Bitcoin будет указывать новую высоту блока цепи к URL, и больше ничего

          Возвращает: числовой идентификатор, представленный URL просто добавляется в список мониторинга

     monitorblocks-дель-идентификатор

          Удаление URL [ID] из списка монитора.

          Возвращает: успех / провал

     monitorblocks ясно

          Очищает список мониторов и останавливает весь мониторинг.

          Возвращает: успех / провал

jgarzik сейчас офлайн Пожаловаться на jgarzik   Ответить с цитированием Мультицитирование сообщения от jgarzik Быстрый ответ на сообщение jgarzik

10 февраля 2011, 7:19:05 AM   # 5
 
 
Сообщений: 78
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

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

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

midnightmagic сейчас офлайн Пожаловаться на midnightmagic   Ответить с цитированием Мультицитирование сообщения от midnightmagic Быстрый ответ на сообщение midnightmagic

10 февраля 2011, 7:35:32 AM   # 6
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

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

Это верно, и в самом деле, это был мой план реализации нажимной добычи. хммм.
jgarzik сейчас офлайн Пожаловаться на jgarzik   Ответить с цитированием Мультицитирование сообщения от jgarzik Быстрый ответ на сообщение jgarzik

10 февраля 2011, 5:32:38 PM   # 7
 
 
Сообщений: 90
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

+1

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

Что касается Push API, конечно же, что jgarzik имеет право в отношении необходимости в API также обрабатывать удаление и список слушателей. Тем не менее, я согласен с midnightmagic относительно потенциальных ловушек Push. Я выразил те же самые проблемы в предыдущей теме (см http://bitcointalk.org/index.php?topic=3092.0 для окровавленных деталей).

Как будет Push API обрабатывать случай слушателя быть временно недоступен, или то, что происходит, если слушатель получает сообщение, но умирает прежде, чем у него есть шанс его обработки? В последнем случае, тщательные слушатели обратите внимание, что расхождение в блоке цепи и должны выдать getblock так или иначе...
jon_smark сейчас офлайн Пожаловаться на jon_smark   Ответить с цитированием Мультицитирование сообщения от jon_smark Быстрый ответ на сообщение jon_smark

10 февраля 2011, 7:55:05 PM   # 8
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

Как будет Push API обрабатывать случай слушателя быть временно недоступен, или то, что происходит, если слушатель получает сообщение, но умирает прежде, чем у него есть шанс его обработки? В последнем случае, тщательные слушатели обратите внимание, что расхождение в блоке цепи и должны выдать getblock так или иначе...

При мониторинге блоков, то очевидно, когда вы пропустили блоки из данных. Блок цепи REORG что-то думать, хотя. И при контроле за работу, это нормально, чтобы пропустить «getwork» блок и просто извлечь новую.

Мониторинг операций, как уже отмечалось, более сложным с этой точки зрения, а также ...

jgarzik сейчас офлайн Пожаловаться на jgarzik   Ответить с цитированием Мультицитирование сообщения от jgarzik Быстрый ответ на сообщение jgarzik

10 февраля 2011, 10:24:58 PM   # 9
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

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

Подключение через другой порт?

Или вы учите минимальную реализацию HTTP Bitcoin, чтобы держать соединение открытым? (и обслуживание нескольких соединений одновременно)

Я получил случай использования (Google App Engine), где постоянное подключение к Bitcoin не представляется возможным (App Engine приложений может принести URL, и может выступать в качестве «веб-крюки», но не может просто открыть сокет и слушать) ,
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

10 февраля 2011, 11:13:51 PM   # 10
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

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

Подключение через другой порт?

Или вы учите минимальную реализацию HTTP Bitcoin, чтобы держать соединение открытым? (и обслуживание нескольких соединений одновременно)

Как обсуждалось на IRC, JSON-RPC HTTPD Bitcoin должен быть преобразован для использования выбора (2) (или опрос или Epoll), как это делается в настоящее время в ThreadSocketHandler2 (), которая позволяет HTTP / 1.1 постоянные соединения.

Но давайте оставим в стороне на секунду.

Тем не менее, для monitorblocks и нажимной добычи полезных ископаемых ("pushwork"), Я хотел бы призвать к рассмотрению запуска сервера TCP на в третьих порт (8331?) с простым протоколом, предназначенным для длительных соединений TCP, и широковещательной передачей данных.

Сервер (bitcoind) упрощенный псевдокод monitorblocks:
Код:
processed_new_block_event (блок):
    для каждого соединения входящего TCP на порт 8331:
        если (соединение маски & BROADCAST_BLOCK)
            записи (гнездо FD, блок)

Клиент упрощена псевдокод monitorblocks:
Код:
TCP подключения к хосту: 8331
отправить CURTIME, версию протокола, версию клиента строка, имя пользователя, [возможно, пустой] список опций, SHA256 (все предыдущие арг + пароль)
ждать ответа сервера ("Auth нормально, вот мои возможности", или "отклонено, до свидания")
Отправить "пришлите мне новые блоки" сообщение

в то время как (истина)
     выбрать / опрос для нового входа с удаленного сервера (bitcoind)
     прочитать сообщение от сервера ("привет, я новый блок!")
     принять меры отдельных клиентов, основываясь на сообщении ...

Таким образом, логика bitcoind проста, потому что вы не должны следить за список контролируемых адресов, ни заботиться о повторе на monitorblocks HTTP POST, если сервер выключен, и т.д.

Эта же модель подключения клиента может быть использована для "От себя" горнодобывающая промышленность, где шахтеры автоматически доставляются новой работой, если bitcoind получает новый TX или блок от сети P2P.

Сервер (bitcoind) упрощена псевдокод для нажимной добычи:
Код:
processed_new_block_event (блок):
    для каждого соединения входящего TCP на порт 8331:
        если (соединение маски & BROADCAST_WORK)
            работа = RPC.getwork ()
            записи (гнездо FD, работа)

И клиент шахтеры будут вести себя так же (предупреждение орехов эффективности: это упрощенный пример):
Код:
TCP подключения к хосту: 8331
отправить CURTIME, версию протокола, версию клиента строка, имя пользователя, [возможно, пустой] список опций, SHA256 (все предыдущие арг + пароль)
ждать ответа сервера ("Auth нормально, вот мои возможности", или "отклонено, до свидания")
Отправить "отправить мне новую работу" сообщение

начать доказательство правильности работы горнодобывающих GPU / CPU потоки в фоновом режиме:
     в то время как (истина)
          Отправить "получить работу" сообщение
          прочитать работу с сервера
          выполнение GPU / CPU ядро ​​шахтер
          если решение найдено:
               Отправить "найденное решение" сообщение

в то время как (истина)
     выбрать / опрос для нового входа с удаленного сервера (bitcoind)
     прочитать сообщение от сервера ("привет, я новый блок работы!")
     прерывает ядро ​​GPU / CPU шахтера, перезагружать с новой работой

Или что-то в этом роде.

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


jgarzik сейчас офлайн Пожаловаться на jgarzik   Ответить с цитированием Мультицитирование сообщения от jgarzik Быстрый ответ на сообщение jgarzik

11 февраля 2011, 9:20:48 AM   # 11
 
 
Сообщения: 205
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

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

Подключение через другой порт?

Или вы учите минимальную реализацию HTTP Bitcoin, чтобы держать соединение открытым? (и обслуживание нескольких соединений одновременно)

Я получил случай использования (Google App Engine), где постоянное подключение к Bitcoin не представляется возможным (App Engine приложений может принести URL, и может выступать в качестве «веб-крюки», но не может просто открыть сокет и слушать) ,


Существует канал API:

http://code.google.com/appengine/docs/python/channel/overview.html
Sandos сейчас офлайн Пожаловаться на Sandos   Ответить с цитированием Мультицитирование сообщения от Sandos Быстрый ответ на сообщение Sandos

13 февраля 2011, 9:10:03 PM   # 12
 
 
Сообщения: 1372
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

Код:
[Цитата дата автор = jgarzik ссылка = тема = 2647.msg46868 # msg46868 = 1297379631]
[код]
TCP подключения к хосту: 8331
отправить CURTIME, версию протокола, версию клиента строка, имя пользователя, [возможно, пустой] список опций, SHA256 (все предыдущие арг + пароль)
ждать ответа сервера ("Auth нормально, вот мои возможности", или "отклонено, до свидания")
[/ Цитата]

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

У меня нет каких-либо серьезных проблем с вашим предложением. Пропуск HTTP накладных расходов является хорошей идеей, главным образом, для высокого развертывания движения и в том числе своего рода уведомления для внешних приложений, было бы неплохо. Но если у меня будет выбор, я предпочитаю протокол без гражданства. Я не вижу первый запрос аутентификации, при необходимости, нет никаких проблем с отправкой имя пользователя / пароль при каждом запросе, но это сделать код с обеих сторон более прозрачными.
[/код]
слякоть сейчас офлайн Пожаловаться на слякоть   Ответить с цитированием Мультицитирование сообщения от слякоти Быстрый ответ на сообщение слякоть

13 февраля 2011, 11:01:44 PM   # 13
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

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

Высококвалифицированные избыточные заголовки HTTP, вероятно, >50% от вашего общего использования полосы пропускания. Мое предложение исключает, что полностью.

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

Мое предложение Отрубает «getwork» вниз к один пакет сети.  То есть максимальная эффективность сети.
jgarzik сейчас офлайн Пожаловаться на jgarzik   Ответить с цитированием Мультицитирование сообщения от jgarzik Быстрый ответ на сообщение jgarzik

16 февраля 2011, 8:58:23 PM   # 14
 
 
Сообщения: 1372
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] монитор JSON-RPC API (нажать вместо опроса)

Высококвалифицированные избыточные заголовки HTTP, вероятно, >50% от вашего общего использования полосы пропускания.

Я не могу согласиться! Я не говорю о HTTP на основе протокол без.

котировка
Стоимость без гражданства является огромный.

Если вы говорите о апатридах звонков через TCP (может быть двоичным, но мне не нравится это, как мы обсуждали в протоколе ветке форума), есть только немного накладные расходы (возможно только при отправке имени пользователя / логина на каждом запросе), но это сделать вещица легче на стороне сервера, а также открыть некоторые возможности, как повторное использование того же соединения TCP для многих работников (GPU потоков). В настоящее время шахтеры ГПУ просят более getworks сразу, что нужно (и, вероятно, будет необходимо с государственным протоколом) более независимых TCP соединений от приложения к серверу (Это трудно сказать, потому что мы не обсуждаем getwork внутренностей).

Но я думаю, что это только косметическая вещь, и я не буду за это бороться.
слякоть сейчас офлайн Пожаловаться на слякоть   Ответить с цитированием Мультицитирование сообщения от слякоти Быстрый ответ на сообщение слякоть



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW