предложение Сетевой протокол (в процессе): https://docs.google.com/document/d/17zHy1SUlhgtCMbypO8cHgpWH73V5iUQKk_0rWvMqSNs/edit?hl=en_US
Реализация сервера (в процессе): https://gitorious.org/stratum/
Запуск узлов:
- london.stratum.bitcoin.cz (TCP - 3333, HTTP - 8001), поставщик: Linode.com
- chicago.stratum.bitcoin.cz (TCP - 3333, HTTP - 8000), поставщик: BitVps.com (спасибо!)
Короткая цитата из документа Google, описывающая основной целью такой наложенной сети.
котировка
Платформа Электрум является основой для создания облегченных клиентов Bitcoin (= клиентов без blockchain, сохраняя только закрытые ключи). Отсутствие blockchain на стороне клиента обеспечивают очень хороший пользовательский опыт, клиент имеет очень небольшие размеры и по-прежнему обеспечивают высокий уровень безопасности и конфиденциальности.
В основном Электрум является наложенной сетью на вершине протокола Bitcoin P2P, создавая упрощенный фасад для облегченных клиентов и скрывая излишнюю сложность децентрализованного протокола. Однако есть гораздо больший потенциал в этой наложенной сети, чем просто предоставление упрощенного API для доступа к blockchain хранится на серверах Электрума. Для использования такого потенциала, мы, безусловно, нуждаются в надежной протокол обеспечения достаточной гибкости для различных типов клиентов Электрум и их целей.
Некоторые передовые идеи для сети Электрум, которая будет нуждаться в гибкой сетевой протокол:
* Интеграция BTC / декретные обменов в клиент
* Кошелек для хранения бездисковых или крайне клиентов с низким уровнем ресурсов (AVR на основе аппаратных кошельков)
* Серверные escrows (отправка биткойны на электронную почту)
* Интеграция Bitcoin белья
* Обмен калькуляторы (для обеспечения «Fiat» эквивалентов BTC в клиентах)
* Firstbits поддержка
* Поддержка Mining для клиентов
* Различные транспортные протоколы (особенно HTTP Push, которая позволяет PHP сайты интеграции с Bitcoin легко)
В основном Электрум является наложенной сетью на вершине протокола Bitcoin P2P, создавая упрощенный фасад для облегченных клиентов и скрывая излишнюю сложность децентрализованного протокола. Однако есть гораздо больший потенциал в этой наложенной сети, чем просто предоставление упрощенного API для доступа к blockchain хранится на серверах Электрума. Для использования такого потенциала, мы, безусловно, нуждаются в надежной протокол обеспечения достаточной гибкости для различных типов клиентов Электрум и их целей.
Некоторые передовые идеи для сети Электрум, которая будет нуждаться в гибкой сетевой протокол:
* Интеграция BTC / декретные обменов в клиент
* Кошелек для хранения бездисковых или крайне клиентов с низким уровнем ресурсов (AVR на основе аппаратных кошельков)
* Серверные escrows (отправка биткойны на электронную почту)
* Интеграция Bitcoin белья
* Обмен калькуляторы (для обеспечения «Fiat» эквивалентов BTC в клиентах)
* Firstbits поддержка
* Поддержка Mining для клиентов
* Различные транспортные протоколы (особенно HTTP Push, которая позволяет PHP сайты интеграции с Bitcoin легко)
Требования к протоколу:
котировка
* Протокол должен быть как можно более простым. Некоторые клиенты не способны обрабатывать системы сообщений на высоком уровне, как Google, протокол буферов или Apache бережливость.
* Протокол должен быть текст на основе. Некоторые языки не могут обрабатывать двоичные данные (JavaScript) или это довольно трудно правильно (PHP) реализовать.
* Протокол должен поддерживать стандартный механизм RPC (запрос-ответ). Запрос должны содержать идентификатор и параметры метода, ответ должен быть в состоянии передать состояния ошибки / исключение.
* Преобразование между запросом и ответом должно быть ясно. Не допускать неопределенную связь между запросом и ответом. Некоторые системы на основе сообщений используют только текстовые конвенции для отображения запросов и ответов вместе, как «firstbits_resolvefirstbits_response»» ожидает <адрес>»Или«firstbits_error <причина>». Это создает неоднозначный поток данных, избежать его.
* Протокол должен поддерживать публикации-подписки механизм. Клиент может подписаться на сервер для получения какой-то информации. После этого запроса, сервер будет активно транслировать сообщения в подписавшиеся клиент до клиента разъединяет или отменить его подписка.
* Протокол должен быть двунаправленным. В противоположность стандартной модели клиент-сервер, мы иногда необходимо разрешить серверу инициировать связь. В качестве примера, сервер может попросить клиента подключиться к другому узлу (перед переключением в режим технического обслуживания) или отправить некоторое текстовое сообщение пользователю.
* Протокол должен быть текст на основе. Некоторые языки не могут обрабатывать двоичные данные (JavaScript) или это довольно трудно правильно (PHP) реализовать.
* Протокол должен поддерживать стандартный механизм RPC (запрос-ответ). Запрос должны содержать идентификатор и параметры метода, ответ должен быть в состоянии передать состояния ошибки / исключение.
* Преобразование между запросом и ответом должно быть ясно. Не допускать неопределенную связь между запросом и ответом. Некоторые системы на основе сообщений используют только текстовые конвенции для отображения запросов и ответов вместе, как «firstbits_resolve
* Протокол должен поддерживать публикации-подписки механизм. Клиент может подписаться на сервер для получения какой-то информации. После этого запроса, сервер будет активно транслировать сообщения в подписавшиеся клиент до клиента разъединяет или отменить его подписка.
* Протокол должен быть двунаправленным. В противоположность стандартной модели клиент-сервер, мы иногда необходимо разрешить серверу инициировать связь. В качестве примера, сервер может попросить клиента подключиться к другому узлу (перед переключением в режим технического обслуживания) или отправить некоторое текстовое сообщение пользователю.