Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
18 марта 2015, 10:31:38 AM   # 1
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Низкое распределение блоков задержки без проверки

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


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

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

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

Правило сети является то, что узлы должны только вперед блоки один блока были полностью проверены. Это означает, что узел должен получить блок, в полном объеме, прежде чем направить его коллега. Он также должен полностью проверить блок. Все это добавляет к латентности.

Кроме того, это означает, что клиенты SPV не могут пересылать блоки. Если полная проверка не требуется, SPV клиент на смартфон, который подключен к Wi-Fi и имеет > 95% заряд батареи может быть установлен, чтобы помочь блокам вперед. Это позволит улучшить избыточность сети.

Там нет необходимости для полной проверки блоков для того, чтобы подтвердить, что блок был полностью опубликован. Блок Военнопленный по своей природе действует как защита от DDOS.

Я предлагаю два новых сообщений "chaintip" а также "newblock",

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

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

Блок разбит на несколько "newblock" сообщение следующего формата:

int256 blockid
Int32 message_index = начинается с нуля для каждого блока
Блок заголовка (или пустой массив для message_index > 0)
кодируются Merkle ветвь (ов)
varint tx_count
TXS [tx_count]: сделки

Сообщение требуется либо содержать ровно одну транзакцию или имеют длину меньше, чем 8kB. Это означает, что блок разбивается на множество мелких частей. Крупные сделки все еще могут быть отправлены, но послали в их собственном сообщении.

Каждое сообщение содержит дополнительную информацию Merkle ветви, необходимую для проверки всех операций в сообщении. Чем больше сделок, отправляемых в одном сообщении, тем меньше Merkle информация требуется. Кодирование будет аналогично кодировке merkleblock но модифицирован таким образом, что информация передается в ветви предыдущих сообщений не должна быть повторно отправлена. 

Может быть, лучше просто включить всю ветку, так что newblock сообщение может быть проверено без необходимости дополнительной информации (кроме заголовка блока).

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

Пир может, посылает новое сообщение chaintip информировать коллега, сколько сделок он получил для нового блока. Сверстники бы не вперед newblock сообщения для сделок, которые он уже имеет.

Сообщение chaintip может быть использован для указания, что он не хочет, не более newblock сообщений от конкретного партнера, отправив chaintip с графом транзакций разосланный всем из них. Это будет по-прежнему получать newblock сообщения, если другой блок был найден.

Если узел не посылает по меньшей мере один chaintip сообщения, он никогда не будет получать newblock сообщения.
TierNolan сейчас офлайн Пожаловаться на TierNolan   Ответить с цитированием Мультицитирование сообщения от TierNolan Быстрый ответ на сообщение TierNolan


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


18 марта 2015, 11:59:15 AM   # 2
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Низкое распределение блоков задержки без проверки

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





Непроверенный getblock был осуществляется Люк-JR ранее. Это не значительно повысить производительность. Задержка в системе не происходит от проверки, потому что практически все данные уже проверены.

«Индекс транзакции», что вы описываете, кажется, что это будет иметь больше накладных расходов просто ретранслировать один кусок, чем Протокол relaynetwork Мэтта как правило, необходимо передавать целый блок.

Блок проверка не требуется защита DOS, на самом деле, но это возможно, важно, чтобы проверочная сеть цензор недействительные блоки, чтобы не подвергать SPV клиент на них, которые не будут в состоянии проверить их, чтобы сохранить сильные стимулы в отношении производства недопустимых блоков.

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

18 марта 2015, 1:21:04 PM   # 3
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Низкое распределение блоков задержки без проверки

«Индекс транзакции», что вы описываете, кажется, что это будет иметь больше накладных расходов просто ретранслировать один кусок, чем Протокол relaynetwork Мэтта как правило, необходимо передавать целый блок.

Клиенты не будут подтвердить / обновить chaintip после каждой транзакции. В основном это просто способ предотвратить тратить пропускную способность из-за приемом newblock сообщения от нескольких пиров.

Основная идея заключается в отправить частичные (непроверенные) блоки. Я думаю, что протокол relaynetwork не делает проверку блока либо?  

Он помнит, что операции уже были отправлены и либо отправляет ссылку или полную транзакцию в зависимости. Предположение о том, является

p2p -> bitcoind <-> relaynode <-> relaynode <-> bitcoind <--- p2p

Каждый relaynode имеет bitcoind делает границы маршрутизации?

Неотъемлемо, в рамках этой системы, весь блок должен быть получен до того, как может быть передано сверстникам. При меньших сообщений, они могут быть переданы, даже если остальная часть блока не было получено.

Для больших блоков, особенно если предел 1MB приподнимается, что задержка будет более значительной.

котировка
Блок проверка не требуется защита DOS, на самом деле, но это возможно, важно, чтобы проверочная сеть цензор недействительные блоки, чтобы не подвергать SPV клиент на них, которые не будут в состоянии проверить их, чтобы сохранить сильные стимулы в отношении производства недопустимых блоков.

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

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

19 марта 2015, 7:09:24 PM   # 4
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: Низкое распределение блоков задержки без проверки

Я предложил нечто подобное давно, и мы реализовали его в библиотеке NimbleCoinJ (вы можете получить его от GitHub).
В основном мы имеем "newblock" Команда, которая отправляет только заголовок. И "blockhashes" Команда, которая отправляет список хэш (частичные хеши также могут быть отправлены). Узлы распространение заголовка так быстро, как они могут. Затем они распространили список хэша так быстро, как они могут. В конце концов они проверить блок. Шахтеры работают на непроверенных блоках при фиксированном количестве времени, а затем откат, если они не в состоянии восстановить блок. Это хорошо работает, если: субсидия высока (так что создание пустых блоков не проблема) или гонорары усредняются (так что даже если вы создаете пустой блок, который вы все еще получаете определенную плату) или если скорость блока настолько высока, что попытка воздержитесь блочные операции только уменьшит ваши шансы вашего блока принимаются, и тогда нет никакого стимула сделать это.

Мы реализовали заголовок только для распространения для достижения 6 секунд блокировать интервал и скорость сиротой похожа на Bitcoin. Мы проверили, и это действительно работает хорошо. Проверка 100x Bitcoin объема транзакций в режиме реального времени было возможно. Он использует дополнительную магию, например, ДЕКОР + протокол и локальный протокол маршрутов оптимизации. NimbleCoin, вероятно, будет Bitcoin боковой цепи. Мы ждем Blockstream, чтобы сделать свой первый шаг.

С уважением


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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW