Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
1 января 2016, 1:18:59 PM   # 1
 
 
Сообщений: 10
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование blockchain Bitcoin для обнаружения P2P?

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Привет всем, я хотел бы услышать мнение о том, эта идея стоит, и, если да, то каким образом она может быть улучшена.


Вот ссылка на красивее версию этого: https://gist.github.com/paulkernfeld/7126c1307fd46561df9c


Предисловие: Blockchain хранения Политика
---------------------------
Вопрос о том, следует ли протокол Биткойна быть использован для хранения данных [спорный] (https://github.com/bitcoin/bitcoin/pull/5286), И я приношу свои извинения всем, кто думает, что этот пост в плохом вкусе. Если вы не возражаете, я хотел бы ограничить это особое обсуждение технических достоинств Веспуччи, а не моральных достоинств.

Vespucci
========
Веспуччи предлагаемый протокол, который использует blockchain Bitcoin децентрализованного открытия приложения.

Проблема
===========
Для того, чтобы приложения, чтобы присоединиться к сети P2P, приложение должно каким-то образом найти IP-адрес одного или нескольких коллег, чтобы подключиться. Это называется самонастройки, и это может быть трудно. клиенты BitTorrent и Bitcoin часто включают в себя постоянные адреса "бутстраповские узлы," долгоживущий серверные узлы. Это решение работает только тогда, когда эти долгоживущие узлы серверов остаются вверх, что создает потенциальную точку отказа. Таким образом, этот протокол предназначен для обнаружения приложений со следующими требованиями:

1. Применение P2P необходимо загрузить глобальный список пиров, когда он впервые открыл.
2. Любой должен иметь возможность регистрировать самозагрузку сверстников для открытия.
3. производительность чтения, то есть время, чтобы читать сверстникам и присоединиться к сети, очень важно.
4. Производительность записи, то есть время, чтобы зарегистрировать новый узел, очень важна.
5. Возможность открыть сеть Bitcoin предполагается.

Протокол
============
Адреса коллег будут сохранены с использованием [OP_RETURN] (https://en.bitcoin.it/wiki/OP_RETURN) транзакций выходов. Для того, чтобы обнаружить пэр для приложения, она будет выглядеть через blockchain, возвращая соответствующие операции приложению.

Что хранится?
---------------
Данные толкнул после того, как OP_RETURN будет состоять из:

1. Два байта, `V0` в ASCII, идентифицирующий сообщение как принадлежащее к протоколу Веспуччи.
2. Несколько дополнительных байтов, идентифицирующих приложение.
3. нулевых байт, чтобы отметить конец идентификатора приложения.
4. Список сжатых адресов.

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

Адреса
---------
Несжатые адреса будут нуль общих идентификаторов URI. Это позволяет нам поддерживать IP-адрес, а также имена хостов.

`Схема: [// [пользователь: пароль @] хост [: порт]] [? Запрос] [/] путь [# фрагмент]`

Информация о включении или не включать в себя:

* Мы, наверное, не нужно хранить `scheme` (например,` `http` или magnet`), потому что информация, вероятно, можно судить по применению.
* Это не имеет большого смысла включать `` user` и password` в Bitcoin, публично-видимую магазин!
* Параметр `поле host` всегда будет заполняться
* Параметр `port`,` path`, `query` и` fragment` поля могут быть заселены

компрессия
-----------
Для того, чтобы сжать URL, мы хотим использовать небольшие струны сжимающей библиотеку специально обучен по данным URL вида. [Сохо] (http://ed-von-schleck.github.io/shoco/) Позволяет пользователям делать [именно это] (http://ed-von-schleck.github.io/shoco/#generating-compression-models).

заказ Look
==========
Blockchain Bitcoin является лог-структурированного хранилищем данных, оптимизированный для большой производительности записи, но не предназначена для чтения. Blockchain в настоящее время растет примерно на 25 Гб / год, и не индексируется только по времени. Это представляет дилемму: P2P-приложение, которое уже пять лет придется искать через 125 Гб данных при поиске по линейному закону, даже в том маловероятном случае, если предельный размер блока не увеличивается. Это очень много данных, чтобы просмотреть только, чтобы получить несколько адресов! Итак, как мы можем превратить записи оптимизированной blockchain в открытии магазина чтения оптимизировано?

Чтобы решить эту проблему, мы смотрим через блоки в порядке, который максимизирует производительность операций чтения в то время как в значительной степени ущерба для производительности записи. Алгоритм будет выглядеть следующим образом:

* Без потери общности, маркировать первый блок, который нас интересует блок 0. Этикетка последующих блоков [высоты] (http://bitcoin.stackexchange.com/questions/18561/definition-of-blockchain-height) Заказ: 1, 2, 3, ...
* Определить текущую максимальную высоту блока, как `M`.

1. Установить число `k` таким образом, что` К: = потолок (log2 (М)) `.
2. Посмотрите на все не смотрел, в блоках, где номер блока `B` кратна` 2 ^ k`, в порядке убывания.
3. Если `K > 0`, установите `K: = K - 1 '. В противном случае ( `K = 0 '), мы смотрели на все блоки.

Это также можно рассматривать в качестве высоты блока записи в двоичной системе и подсчет количества нулей в конце. Пример:

Код:
Блоки: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
Двоичные: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101
Конечные нули: 0 1 4 0 2 0 1 0 3 0 1 0 2 0

Порядок Смотри: 0 8 12 4 10 6 2 13 11 9 7 5 3 1

Так же, как при выборе номера портов, приложения должны попытаться избежать синхронизации начальных высот блоков, чтобы избежать скученности на важных блоках. Для того, чтобы оптимизировать дальше, приложения могут перестать смотреть на определенном значении `k`. Например, если мы только посмотрим, пока `K = 10`, минимальное время записи составляет неделю, а приложение гарантированно никогда не придется смотреть через более чем 1/1024 от blockchain, который будет 25 МБ / год в настоящее время ,

Защита от спама
---------------

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

* Искаженные адреса
* Адрес, указывающий на вредоносные узлы бутстраповских
* [Decompression атаки] (https://en.wikipedia.org/wiki/Zip_bomb), Воспользовавшись протоколом сжатия

Связанных с работой
============
[Blockname] (https://github.com/telehash/blockname) Является подобным проектом, Bitcoin blockchain кэша DNS. Blockname пытается решить несколько сложнее проблема, что создания 1: отображение 1 от доменного имени по адресу сервера. В Веспуччах, каждое приложение может возвращать набор адресов.
paulkernfeld сейчас офлайн Пожаловаться на paulkernfeld   Ответить с цитированием Мультицитирование сообщения от paulkernfeld Быстрый ответ на сообщение paulkernfeld


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


1 января 2016, 4:30:42 PM   # 2
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование blockchain Bitcoin для обнаружения P2P?

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





Это действительно очевидный недостаток, но я не думаю, что вы обращались так:

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

1 января 2016, 7:50:13 PM   # 3
 
 
Сообщений: 10
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование blockchain Bitcoin для обнаружения P2P?

Хороший улов! Я определенно не сделал, что ясно. В принципе, ответ на этот вопрос в том, что узлы должны загрузить все заголовки блоков первой, в манере клиента Satoshi SPV (https://en.bitcoin.it/wiki/Thin_Client_Security). Тогда они будут просить полные блоки в определенном порядке. что ответить на ваш вопрос?
paulkernfeld сейчас офлайн Пожаловаться на paulkernfeld   Ответить с цитированием Мультицитирование сообщения от paulkernfeld Быстрый ответ на сообщение paulkernfeld

1 января 2016, 8:04:58 PM   # 4
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование blockchain Bitcoin для обнаружения P2P?

Хороший улов! Я определенно не сделал, что ясно. В принципе, ответ на этот вопрос в том, что узлы должны загрузить все заголовки блоков первой, в манере клиента Satoshi SPV (https://en.bitcoin.it/wiki/Thin_Client_Security). Тогда они будут просить полные блоки в определенном порядке. что ответить на ваш вопрос?
No. Заголовки не будет поставлять информацию, необходимую для нахождения коллег.

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

1 января 2016, 8:23:21 PM   # 5
 
 
Сообщений: 10
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование blockchain Bitcoin для обнаружения P2P?

Ах! К сожалению, я не понял ваш первоначальный вопрос. Я предполагаю, что новый узел имеет возможность подключения к сети Bitcoin, и что она использует сеть Bitcoin, чтобы найти информацию обнаружения для другой сети равноправных узлов ЛВС. Имеет ли это смысл?
paulkernfeld сейчас офлайн Пожаловаться на paulkernfeld   Ответить с цитированием Мультицитирование сообщения от paulkernfeld Быстрый ответ на сообщение paulkernfeld

1 января 2016, 8:30:17 PM   # 6
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование blockchain Bitcoin для обнаружения P2P?

Ах! К сожалению, я не понял ваш первоначальный вопрос. Я предполагаю, что новый узел имеет возможность подключения к сети Bitcoin, и что она использует сеть Bitcoin, чтобы найти информацию обнаружения для другой сети равноправных узлов ЛВС. Имеет ли это смысл?
О, я вижу. Таким образом, он использует сеть Bitcoin и blockchain для того, чтобы подключиться к другой сети p2p. Это было бы только полезно, если пользователь использует Bitcoin и реализацию полного узла. Похоже, что ужасно неэффективный способ подключения, и было бы принять возрасты, чтобы сделать это, так как это необходимо загрузить весь blockchain и поиск через него для операций с IP-адресами, закодированных в них.

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

1 января 2016, 8:37:34 PM   # 7
 
 
Сообщений: 10
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование blockchain Bitcoin для обнаружения P2P?

Хм, я надеялся избежать загрузки всего blockchain. Я согласен с вами, что загружая весь blockchain для открытия нецелесообразно, поскольку новое приложение потребует несколько часов или дней, чтобы начать. С моей конструкции, я считаю, что клиент нуждается только для загрузки всех блоков заголовков, не все блоки. Затем клиент запрашивает подмножество фактических блоков. Для того, чтобы достичь этого, я делаю большие жертвы на скорость записи (например, вы можете ждать месяцы, чтобы записать данные).
paulkernfeld сейчас офлайн Пожаловаться на paulkernfeld   Ответить с цитированием Мультицитирование сообщения от paulkernfeld Быстрый ответ на сообщение paulkernfeld

1 января 2016, 10:17:04 PM   # 8
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование blockchain Bitcoin для обнаружения P2P?

Хм, я надеялся избежать загрузки всего blockchain. Я согласен с вами, что загружая весь blockchain для открытия нецелесообразно, поскольку новое приложение потребует несколько часов или дней, чтобы начать. С моей конструкции, я считаю, что клиент нуждается только для загрузки всех блоков заголовков, не все блоки. Затем клиент запрашивает подмножество фактических блоков. Для того, чтобы достичь этого, я делаю большие жертвы на скорость записи (например, вы можете ждать месяцы, чтобы записать данные).
Если кодирование данных в транзакции, заголовок блока не собирается помогать. Это не означает, что сделки там, вам потребуется фактический блок для этого. Там нет никакого способа для клиента, чтобы знать, какие блоки содержат операции с IP-адресами, поэтому необходимо загрузить все блоки. Я полагаю, вы могли бы сказать, что это нужно только загрузить блоки с определенной точкой вперед, но это будет по-прежнему расти, чтобы быть очень большими по прошествии некоторого времени.

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

2 января 2016, 10:40:35 AM   # 9
 
 
Сообщений: 10
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование blockchain Bitcoin для обнаружения P2P?

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

Это именно то, что проблема с предыдущими предложениями: загрузка всего blockchain просто слишком долго. Путь я предлагаю решить это предопределить, какие блоки смотреть как часть протокола. Например. вместо того, чтобы смотреть на блоки
Код:
0, 1, 2, 3, 4, 5, 6
, клиент будет смотреть на блоки
Код:
0, 4, 6, 2
. Это увеличивает время записи, потому что вы должны ждать, пока нужную высоту блока, чтобы писать.

Спасибо за критику! Это, безусловно, помогает мне улучшить предложение. Я обновил GIST включить этот материал.
paulkernfeld сейчас офлайн Пожаловаться на paulkernfeld   Ответить с цитированием Мультицитирование сообщения от paulkernfeld Быстрый ответ на сообщение paulkernfeld

3 января 2016, 8:22:27 AM   # 10
 
 
Сообщения: 728
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование blockchain Bitcoin для обнаружения P2P?

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW