12 июня 2010, 4:09:43 AM   # 1
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: Запуск на Google App Engine

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Joozero спросил, если бы я сделать источник freebitcoins.appspot.com доступен, и я обещал начать нить объяснить, как я создал it-- и здесь.

freebitcoins работает на Google App Engine. Ну, часть, которую вы видите, работает на App Engine.

Там также фоновый bitcoind сервер, работающий на DEBiAN VPS, что я имел в течение многих лет. Код двигателя App делает вызовы JSON-RPC через App Engine URL Fetching API. Изготовление, что соединение безопасно было немного сложно; вот как я это сделал:

Во-первых, я подключиться к VPS с использованием протокола HTTPS, так что трафик шифруется.

Мне нужно безопасное соединение, потому что я добавить секретное предварительно общее значение для вызова JSON. Я не собираюсь, чтобы сделать полный источник для freebitcoins полностью открытым исходным кодом, потому что я не хочу возиться с постоянно работать, чтобы держать эту секретную ценность в секрете. Я должен хеширования весь запрос с помощью секретного ключа и постоянно увеличивающейся нонса, но было лень, и я просто не очень беспокоит атака посредника между Google и мой VPS.

Я мог бы взломать мою копию bitcoind C ++ код для проверки секретного значения в запросах, а также модифицировать его, чтобы он принял подключение из Интернета ... но вместо этого я написал этот маленький прокси-сервер в Python, который работает на тот же блок, bitcoind:
Код:
#
# WSGI Proxy в bitcoind демон (который прослушивает только на 127.0.0.1 для безопасности).
# Rejects без Https соединения или запросы, не POST
# Rejects запросов, которые не включают в себя предварительное общем секретное значение
#
# Apache называет это из-за директивы в /etc/apache2/sites-available/xyz.com
#

импорт hashlib
импорт urllib2

применение четкости (окружать, start_response):
  ServerURL = "http://127.0.0.1:8332/"

  Защиту error_response (сообщение):
    response_headers = [( 'Content-Type', 'текст / обычный'),
            ( 'Content-Length', ул (Len (сообщение)))]
    start_response ( '500 Внутренняя ошибка сервера', response_headers)
    возврат сообщения

  если environ.get ("HTTPS"знак равно "1":
    вернуться error_response ("Незащищенные соединения не допускается.")

  Запрос = environ.get ("wsgi.input").читать()
  секрет = запрос [0:32]
  json_request = запрос [32:]

  если hashlib.md5 (" предварительно общий секрет здесь идет "+ Json_request) .hexdigest () = секрет:
    вернуться error_response ("Ошибка аутентификации.")

  REQ = urllib2.Request (ServerURL, json_request)
  ответ = urllib2.urlopen (REQ)
  json_response = response.read ()

  статус = '200 OK'

  response_headers = [( 'Content-Type', 'текст / обычный'),
            ( 'Content-Length', ул (LEN (json_response)))]
  start_response (статус, response_headers)

  вернуться [json_response]
Другой конец соединения также Джанго код + Python работает на App Engine:
Код:
импорт hashlib
импорт jsonrpc
от google.appengine.api импорта UrlFetch

Защиту make_bitcoin_request (server_url, server_secret, метод Params):
  json_request = {
    "jsonrpc": "2,0",
    "Я бы": Ул (time.time ()),
    "метод": Метод, "Титулы": Титулы
    }
 
  json_string = jsonrpc.dumps (json_request)
  секрет = hashlib.md5 (server_secret + json_string) .hexdigest ()
 
  пытаться:
    fetch_result = urlfetch.fetch (payment_server,
                                  метод ="ПОСЛЕ", Полезная нагрузка = секрет + json_string,
                                  Заголовки = { 'Content-Type': 'текст / обычный'})
  кроме urlfetch.Error, е:
    logging.error ( 'make_bitcoin_request не удалось:' ул (е +))
    logging.error ( 'Запрос:' + json_string)
    возвращения None
 
  если fetch_result.status_code = 200:
    logging.error ( 'make_bitcoin_request не удалось; UrlFetch код состояния% d' % (fetch_result.status_code))
    logging.error ( 'Запрос:' + json_string)
    возвращения None

  г = jsonrpc.loads (fetch_result.content)
  если г [ «ошибки»] не является None:
    logging.error ( 'make_bitcoin_request не удалось, ошибка JSON возвращается')
    logging.error ( 'Запрос:' + json_string)
    logging.error ( 'Результат:' + fetch_result.content)
    возвращения None

  возвращение г [ «результат»]

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


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


12 июня 2010, 5:46:40 AM   # 2
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Запуск на Google App Engine

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





Таким образом, в принципе, вы работаете Bitcoin на VPS и используя соединение по протоколу HTTPS с App Engine, чтобы сигнализировать ему, что делать? Почему бы не просто разместить сайт на сервере?
Lachesis сейчас офлайн Пожаловаться на Lachesis   Ответить с цитированием Мультицитирование сообщения от Lachesis Быстрый ответ на сообщение Lachesis

12 июня 2010, 11:51:33 AM   # 3
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: Запуск на Google App Engine

Таким образом, в принципе, вы работаете Bitcoin на VPS и используя соединение по протоколу HTTPS с App Engine, чтобы сигнализировать ему, что делать? Почему бы не просто разместить сайт на сервере?
App Engine дает мне:
 Свободная полоса пропускания и хранения данных (с возможностью платить за то, что я использую, если я пойду за гигабайт)
 Встроенный, уже сконфигурированные-и-отлажены инструменты, как и BigTable кэше
 Архитектура, где расширение масштабов встроено (App Engine будет автоматически реплицировать мое приложение и распространять его через всемирную сеть распространения контента Google, если он получает много трафика)

И все это находится в ведении сисадминов Google (которые WAY лучше это, чем я).

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

13 июля 2010, 10:29:14 PM   # 4
 
 
Сообщения: 1398
Цитировать по имени
цитировать ответ
по умолчанию Re: Запуск на Google App Engine

Можно ли переписать части Bitcoin так она работает полностью в GAE? В частности, функция, которая обрабатывает транзакцию, поэтому она полностью масштабируемая?

Я имею в виду, можно получить исходный код из SourceForge и писать код C в GAE языка (Python или Java).
jimbobway сейчас офлайн Пожаловаться на jimbobway   Ответить с цитированием Мультицитирование сообщения от jimbobway Быстрый ответ на сообщение jimbobway

22 сентября 2010, 12:52:10 AM   # 5
 
 
Сообщения: 574
Цитировать по имени
цитировать ответ
по умолчанию Re: Запуск на Google App Engine

По-видимому, рассматривает в http://pastebin.com/10k74rSd (Который представляет собой резюме клиентских хостов Bitcoin в #bitcoin на LFNet, как около 15 минут назад) линии 432-529 всех GAE.

Как же у генерировать этот список?
http://bitcointalk.org/index.php?topic=1068.msg13665#msg13665
mizerydearia сейчас офлайн Пожаловаться на mizerydearia   Ответить с цитированием Мультицитирование сообщения от mizerydearia Быстрый ответ на сообщение mizerydearia

22 сентября 2010, 1:33:19 AM   # 6
 
 
Сообщения: 1398
Цитировать по имени
цитировать ответ
по умолчанию Re: Запуск на Google App Engine

По-видимому, рассматривает в http://pastebin.com/10k74rSd (Который представляет собой резюме клиентских хостов Bitcoin в #bitcoin на LFNet, как около 15 минут назад) линии 432-529 всех GAE.


Как же у генерировать этот список?
jimbobway сейчас офлайн Пожаловаться на jimbobway   Ответить с цитированием Мультицитирование сообщения от jimbobway Быстрый ответ на сообщение jimbobway

22 сентября 2010, 12:48:43 PM   # 7
 
 
Сообщения: 487
Цитировать по имени
цитировать ответ
по умолчанию Re: Запуск на Google App Engine

Можно ли переписать части Bitcoin так она работает полностью в GAE? В частности, функция, которая обрабатывает транзакцию, поэтому она полностью масштабируемая?

Я имею в виду, можно получить исходный код из SourceForge и писать код C в GAE языка (Python или Java).
Мы на самом деле пытаюсь построить небольшой сетевой модуль для сопряжения Bitcoin протокола в Python, если вы хотите, чтобы помочь, не стесняйтесь вносить свой вклад: http://bitcointalk.org/index.php?topic=231.0
Cdecker сейчас офлайн Пожаловаться на Cdecker   Ответить с цитированием Мультицитирование сообщения от Cdecker Быстрый ответ на сообщение Cdecker

11 марта 2011, 9:06:01 AM   # 8
 
 
Сообщения: 616
Цитировать по имени
цитировать ответ
по умолчанию Re: Запуск на Google App Engine

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

22 апреля 2013, 8:15:17 PM   # 9
 
 
Сообщения: 160
Цитировать по имени
цитировать ответ
по умолчанию Re: Запуск на Google App Engine

Вы, наверное, уже нашли его, и эта тема очень старая, я знаю. Но:

Почему бы не ваша вещь прочитать тайну из файла, так что вы можете освободить весь код, но оставить секретный ключ к вашей машине до сих пор скрыты?

App Engine не поддерживает файл ввода / вывода. Вы можете написать его в Blob магазине, но это, вероятно, слишком много накладных расходов.
stevenroose сейчас офлайн Пожаловаться на stevenroose   Ответить с цитированием Мультицитирование сообщения от stevenroose Быстрый ответ на сообщение stevenroose

24 сентября 2013, 10:06:05 PM   # 10
 
 
Сообщений: 55
Цитировать по имени
цитировать ответ
по умолчанию Re: Запуск на Google App Engine

Привет Гэвин, я читал эту старую тему, и я хотел бы спросить: почему вы добавили секретный параметр в запросе? Не является ли соединение обеспечить уже при использовании SSL? Благодаря!

Кстати: идти Google App Engine!
Я сумел получить https://github.com/jgarzik/python-bitcoinrpc работать на GAE

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW