Bitcoin Forum
April 25, 2024, 11:32:55 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: версии клиентов  (Read 620 times)
Alda Gordaya (OP)
Member
**
Offline Offline

Activity: 61
Merit: 10



View Profile
January 27, 2013, 05:27:33 AM
 #1

Что будет, если один из узлов сети будет иметь существенно отличающуюся версию?

https://en.bitcoin.it/wiki/Protocol_specification#version

вот если здесь будет не 106, а например 0x00FF0006 ?

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

Например, можно ли доопределить протокол так, если число отрицательное, то клиент работает в I2P и адрес будет добавлен дополнительным полем?



Вообще, такое впечатление, что адрес в протоколе используется только в этом единственном месте.
И непонятно для чего (зачем). ведь получающая нода итак знает свой адрес...

UPD:
нет, не в единственном, еще в сообщении addr
1714044775
Hero Member
*
Offline Offline

Posts: 1714044775

View Profile Personal Message (Offline)

Ignore
1714044775
Reply with quote  #2

1714044775
Report to moderator
Once a transaction has 6 confirmations, it is extremely unlikely that an attacker without at least 50% of the network's computation power would be able to reverse it.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Yurock
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


View Profile
January 27, 2013, 05:50:51 AM
 #2

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

Например, можно ли доопределить протокол так, если число отрицательное, то клиент работает в I2P и адрес будет добавлен дополнительным полем?
Думаю, это не понадобится. Узел и так будет знать, из какой сети к нему подключаются.

И непонятно для чего (зачем). ведь получающая нода итак знает свой адрес...
Иногда не знает. Например, если на компе нет глобальных IP-адресов, но входящие соединения пробрасываются через маршрутизатор.
Alda Gordaya (OP)
Member
**
Offline Offline

Activity: 61
Merit: 10



View Profile
January 27, 2013, 06:03:31 AM
 #3

Узел и так будет знать, из какой сети к нему подключаются.

тогда надо два протокола:
- один для IPv4/IPv6
- другой для I2P

потому что адреса в I2P длинные и просто так в поле для IPv6 не влезут

а где-то выше нужен будет дополнительный уровень абстракции
Yurock
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


View Profile
January 27, 2013, 08:36:14 AM
 #4

адреса в I2P длинные и просто так в поле для IPv6 не влезут
В общем, да.
giv
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
January 27, 2013, 09:03:36 AM
 #5

Если вы внимательно посмотрите на мой скриншот здесь: https://bitcointalk.org/index.php?topic=138588.20, то увидите, что я так и делал - для своего пропатченного клиента ставил версию больше, чем у оригинального. Это нормально работало. Но сейчас я отказался от этой идеи. Изменение версии протокола хорошо, если ваш патч внедрен в основную ветку разработки, чтобы ВСЕ клиенты сети соответствовали принятой системе версионирования. Однако, если ваш патч еще не принят в основную ветку (или вы сами не хотите, чтоб он был принят), то манипулирование версиями может иметь непредсказуемые последствия. Простой пример: сейчас версия протокола 60002, для своей фичи вы выставляете версию, например, 100060002. После этого разработчики биткойна внедряют в протокол новую фичу и присваивают ему номер, например, 70003. Во всех стандартных клиентах появляется вот такой код:
Code:
if (nVersion >= 70003)
    DoSomething();
Клиент с вашим патчем будет соответствовать этому условию, однако, поддержки новой фичи еще в нем нет, а это непредсказуемое поведение. В лучшем случае ваш клиент забанят остальные клиенты за misbehavior. Поэтому в своем патче для i2p я отказался от идеи манипулирования версиями, буквально вчера я решил эту проблему немного другим способом, сегодня буду тестить.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!