Bitcoin Forum

Local => Кодеры => Topic started by: ArsenShnurkov on February 19, 2012, 06:33:21 PM



Title: BOB-интерфейс к I2P
Post by: ArsenShnurkov on February 19, 2012, 06:33:21 PM

I2P - это такая сеть, которая создается запущенными на разных компьютерах инстансами(экземплярами) программы I2P-router.

http://forum.i2p/viewtopic.php?p=40756 (http://forum.i2p/viewtopic.php?p=40756)

Quote from: из сети I2P
I2P router написана на Java и предоставляет интерфейс I2CP = I2P client protocol (http://www.i2p2.de/i2cp)
соответственно, есть реализация серверной часть этого протокола (встроенная в I2P-router)
и клиентская часть реализации этого протокола в виде библиотеки i2p.jar
использовать эту библиотеку не из Java затруднительно, а протокол java-специфичный и реализовать его повторно тоже сложно.

Поэтому сделали еще два протокола SAM (Simple Anonymous Messaging, версии 1 (http://www.i2p2.i2p/sam.html), 2 (http://www.i2p2.i2p/samv2.html) и 3 (http://www.i2p2.i2p/samv3.html)) и BOB (The Basic Open Bridge)
Разница между ними в том, что в SAM команды и данные передаются в одном соединении,
а в BOB два соединения - одно для команд, другое для данных.

Чтобы посмотреть документацию по протоколу BOB предлагают выполнить
telnet localhost 2827
и запустить команду
help

С первого взгляда совершенно неясно:
1) существуют ли готовые клиентские библиотеки для различных технологий (таких как C#/mono, C++, python, perl, php)
2) какие концепции надо знать, чтобы например на C++ написать клиента, который будет присоединяться к I2P-раутеру через BOB


Title: Re: BOB-интерфейс к I2P
Post by: pent on February 19, 2012, 07:08:18 PM
Ну там же описано как создавать тоннели http://www.i2p2.de/bob.html

заходишь к бобу в чат, создаешь ключ, создаешь тоннель. Далее уже чисто по TCP.


Title: Re: BOB-интерфейс к I2P
Post by: ArsenShnurkov on February 19, 2012, 07:33:17 PM
создаешь ключ, создаешь тоннель

Я бы сказал, что создаются два endpoint (ear и mouth)
А уже при соединении (telnet на ear) высылается ключ точки назначения. и потом по этому же каналу - данные.
Мне это кажется нелогичным. По задумке разделяли данные и метаданные, а теперь гонят их по одному каналу.

Там говорится, что на серверной стороне (mouth) есть два режима - quiet и не quiet
во втором случае, как я понял, еще приходит I2p-адрес отправителя.
Это тоже нарушает принцип разделения данных и метаданных.

Из-за этого не ясно, чем BOB лучше чем SAM.

Это важно, потому что клиентская часть к SAM V3 реализована в imule с версии 1.4.0,
а значит ее оттуда можно выковырять готовую.