Bitcoin Forum
May 05, 2024, 02:41:45 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Poll
Question: Должен ли биткойн-кошелек работать в I2P
Нет, меня и обычный инет устраивает
Нет, меня устраивает Tor
Да, не для меня, а для проекта в целом
Да, мне очень не хватает этой фичи
I2P? Что это?

Pages: [1] 2 3 4 5 6 7 8 »  All
  Print  
Author Topic: I2P & Bitcoin  (Read 26205 times)
giv (OP)
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
January 24, 2013, 05:19:28 PM
Last edit: December 24, 2013, 06:02:52 PM by giv
 #1

Update 30.01.2013
Добавлена ссылка на bitcoind.
Update 01.02.2013
Теперь после перезапуска сервиса I2P кошелек нормально восстанавливает соединения.
Теперь bitcoin-qt и bitcoind будут в одном архиве.
Update 08.02.2013
Большое обновление:
реализованы входящие i2p-соединения,
добавлена возможность генерации i2p-адресов (опция -generatei2pdestination),
добавлена возможность запускать кошелек с постоянным i2p-адресом (опция -mydestination),
много мелких исправлений и улучшений.
Update 12.02.2013
Критическое обновление.
При определенных условиях было возможно обращение к несуществующему сокету.
Проблема устранена.
Update 13.02.2013
Небольшое обновление qt-клиента для linux (косметические улучшения), демон можно не обновлять.
Добавлены исполняемые файлы для Windows!
Update 19.02.2013
Увеличена константа, отвечающая за вероятность коннекта между клиентами
Исправлены ошибки, иногда мешавшие коннекту между клиентами
Update 24.02.2013
Переход на версию 0.8
Update 02.03.2013
Добавлена ссылка на патч-файл.
Update 04.03.2013
В исходники вшито несколько i2p-адресов. Теперь можно не указывать опцию -addnode!
Бинарник для линукса собран с той же версией BDB, что и у разработчиков биткоина - теперь базы полностью совместимы (кроме peers.dat). Возможно, потребуется перекачать все блоки (или скопировать их из оригинального клиента)
Мелкие исправления/улучшения.
Update 08.03.2013
Релиз 0.1
Update 28.03.2013
Портированы изменения из официального клиента 0.8.1
Бинарники собраны с поддержкой QR-кодов.
Update 04.07.2013
Релиз 0.2
Улучшена работа с I2P (скорость коннекта, стабильность работы)
Добавлены индикаторы в GUI: количество I2P-коннектов, I2P/не-I2P соединение, static/dynamic I2P-адрес.
Добавлена вкладка для I2P настроек в меню "Опции...". Теперь многие настройки можно менять из GUI, а не только из командной строки.
Генерация нового и отображение текущего I2P-адреса из GUI.
Update 11.07.2013
Переход на 0.8.3
Update 13.09.2013
Переход на 0.8.5
Update 24.12.2013
Переход на 0.8.6

Ссылки:
Исходники:
https://github.com/VirtualDestructor/bitcoin-qt-i2p
http://git.repo.i2p/w/bitcoin-qt-i2p.git

Готовые сборки для Windows и Linux x64:
https://sourceforge.net/projects/bitcoinqti2p

Кто не в курсе, что такое I2P, могут просветиться здесь
https://ru.wikipedia.org/wiki/I2P
http://lurkmore.to/I2p
https://bitcointalk.org/index.php?topic=140885

Мой проект - это патч для стандартного Сатоши-клиента (aka bitcoin-qt/bitcoind). Пока проект больше напоминает Proof-of-Concept, чем готовое приложение. Однако, не стоит забывать, что сам биткоин-клиент всё ещё находится в бета-стадии, и никого это не смущает. Реализована работа через I2P безо всяких сторонних библиотек. В программе используется SAM bridge, входящий в дистрибутив самого I2P. Т.к. база блоков совместима со стандартным клиентом, вы можете использовать блоки от вашего обычного кошелька, чтобы несколько суток не тянуть всю базу через I2P.

Инструкция по установке на Linux (на примере Ubuntu 12.04):
1) добавляем ppa для i2p и bitcoin-qt
Code:
sudo apt-add-repository ppa:i2p-maintainers/i2p
sudo apt-add-repository ppa:bitcoin/bitcoin

2) обновляемся
Code:
sudo apt-get update
sudo apt-get upgrade

3) ставим пакеты (java должна подтянутся автоматически по зависимостям)
Code:
sudo apt-get install i2p bitcoin-qt

4) любым редактором от рута открываем файл /etc/default/i2p
Code:
  RUN_DAEMON="true"  <- выставить в true
...
  MEMORYLIMIT="xxx"  <- укажите здесь значение, в зависимости от количества оперативной памяти (256 или 512 будет достаточно)

5) теперь запускаем i2p
Code:
sudo service i2p start

Инструкция по установке на Windows:
1) качаем дистрибутив i2p только с официального сайта http://www.i2p2.de/download
2) если не установлена Java, установщик i2p сообщит об этом. Java надо скачать тоже с официального сайта http://java.com/download/
3) ставим сначала Java, потом I2P
4) идем Панель управления - Администрирование - Службы. В списке находим I2P, проверяем, что он запущен (если нет - запускаем).

Инструкция по настройке (общая для Windows и Linux):
1) после установки и запуска ждем минут 5, пока i2p загрузится и запустит все сервисы.

2) в браузере открываем странцу http://127.0.0.1:7657/configclients. Если страница не открывается, это значит, что i2p не запущен (возможно возникли какие-то ошибки). После того, как страница открылась возле пункта SAM application bridge необходимо нажать кнопку Start, после этого поставить галочку в столбце Run at Startup?, потом нажать кнопку Save Client Configuration.

3) нужно удалить файл peers.dat (если он есть), он лежит тут  C:\Documents and Settings\YourUserName\Application data\Bitcoin (Win XP)  | C:\Users\YourUserName\Appdata\Roaming\Bitcoin (Vista and 7) | ~/.bitcoin (linux). Это нужно сделать, т.к. формат сериализации сетевых адресов в оригинальном клиенте и в моем патче не совместимы. Внимание! Если этого не сделать и оставить файл, это может привести к зависанию bitcoin-qt+i2p! Эту процедуру нужно провести только один раз перед первым запуском bitcoin-qt+i2p, после первого запуска пропатченный клиент создаст свой peers.dat нужного ему формата.

4) скачать пропатченный бинарник по ссылке выше и запустить его (не запускайте исполняемые файлы с привилегиями суперпользователя/администратора!)
Code:
bitcoin-qt -onlynet=native_i2p
Если вы хотите работать только в I2P укажите опцию -onlynet=native_i2p, как показано в примере выше. Если вы хотите работать одновременно и в I2P, и в обычном интернете - не указывайте этой опции совсем. В таком случае ваш кошелек будет являться гейтом между I2P-подсетью биткоин и остальной сетью.

Замечания:
Если вы хотите помочь биткоину в i2p, вы можете сообщить ваш dest-hash или b32-адрес своего кошелька в этой теме или другим способом, чтобы я мог вшить его в исходники к следующему релизу. Для этого ваш кошелек должен быть запущен с постоянным i2p-адресом, как это сделать см. ниже.
Для Linux: запускайте кошелек с указанием полного пути к исполняемому файлу, или из текущей директории (./bitcoin-qt), т.к. если вы просто укажете имя исполняемого файла, то запустится стандартный bitcoin-qt (если он у вас установлен).

Изменения в стандартных опциях:
1) добавлены новые параметры командной строки и конфигурационного файла:
Code:
-i2psessionname - имя I2P-сессии. Нужно просто для красоты. Можно не указывать. Значение по умолчанию "Bitcoin-client".
-samhost - адрес хоста, на котором запущена служба SAM (см. п.2 инструкции по настройке). Можно не указывать. Значение по умолчанию "127.0.0.1".
-samport - номер порта для предыдущей опции. Можно не указывать. Значение по умолчанию "7656".
-mydestination - ваш полный destination (публичный+приватный ключ). Можно не указывать. Если не указан, то при каждом запуске биткоин-клиент будет генерировать для вас случайный destination. Подробнее про эту опцию, см. ниже (Запуск кошелька с постоянным I2P-адресом).
-generatei2pdestination - без аргументов. Если указана эта опция, то кошелек запустится только для генерации i2p-адреса, после этого закроется.
2) добавлено значение
Code:
native_i2p
для параметра -onlynet.
3) Во всех параметрах требующих IP-адреса теперь можно указывать destination hash: <512 символов>AAAA, или b32-адрес: <52 символа>.b32.i2p

Совместимость:
1) Все остальные опции, кроме указанных, остались без изменения и работают как раньше
2) База peers.dat не совместима в обе стороны между стандартным клиентом и моим патчем. Этот файл должен быть удален при переходе от стандартного клиента к пропатченному и обратно. Этот файл не содержит ценной информации, так что бэкапить его не обязательно.
3) Все остальные базы полностью совместимы с оригинальным клиентом.
4) Полная обратная совместимость протокола! Пропатченный клиент совершенно спокойно может подключаться к стандартному клиенту и наоборот. Никаких манипуляций с версиями протокола! Изменения в протоколе проявляются, только если оба кошелька являются пропатченными.

Запуск кошелька с постоянным I2P-адресом:
По умолчанию, если не указан параметр -mydestination, при каждом запуске кошелек будет генерировать случайный destination (i2p-адрес). В таком случае даже вы не сможете узнать с каким i2p-адресом запустится ваш кошелек. Это ещё больше анонимизирует работу с биткоином, если же для каждой транзакции ещё генерировать новый биткоин-адрес - деанонимизировать вас становится сильно проблематично. Однако, если же вы хотите помочь сети, опубликовав свой i2p-адрес, или вам просто нравится какой-то i2p-адрес, вам нужно запускать кошелек с постоянным i2p-адресом. Для этого нужно указать в опции mydestination полный destination, т.е. нужно указывать base64 dest-hash (b32-адрес указывать здесь нельзя!), с которым вы хотите запустить кошелек, склеенный с вашим закрытым (приватным) ключом от I2P туннеля.
Пример:
Запуск из командной строки:
Code:
bitcoin-qt -mydestination=SVAxpjZzKn~HjvuqpoX5Y948CQnrPpw~9Y9n7itkniijx3NbgTQGJVmZJoc1ERXE87CqcLeeaWtAwqIwhYXL5Y5XkvaUAlAA5BD-9afCmyP42rtEluQLBAprd70UuN20ujuVm0HPyKcIyezphMHsK~GbYMNFiyTz8ko~Kd2wHaeXKWQh6pXyjQJzT4Bwcv1Y9JtPC5b1P5VpwQaLlMJJvblRi8jbRAbimjsxxrMSG6YX8Ks99tsdnQ6YOHGzTPoGpHFgBiROSYwXtC~BbFSv0XfhmN17ZfG6ZCXTbp-xVs-4txSyS~hnS9dL9xHWIv9MNbJzZhI7YztxWgMR3ZNMwR-W2fUeHAcZusmvbm3r-NpIC0O0p9LDDcu7Vxszk~QD~qylFfIT3j8kwu4RDExgqyelVdXVVSlyriHWoIdt9BklqwI1dbAEoLAfG7IZ3921dP4-MH7~AS8Jn3foNe8CAUvu2baRNRIAu75GknCFV5gGIuRRJjFNnrt~vaZfIQP6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3HWfbGlqztnwMY3ChbVHkDwJv52n9ElA-cWCRJp8lquVU4H-l2kY5Me1QlpY~7qFy
Или можно указать в bitcoin.conf:
Code:
$ cat ~/.bitcoin/bitcoin.conf
mydestination=SVAxpjZzKn~HjvuqpoX5Y948CQnrPpw~9Y9n7itkniijx3NbgTQGJVmZJoc1ERXE87CqcLeeaWtAwqIwhYXL5Y5XkvaUAlAA5BD-9afCmyP42rtEluQLBAprd70UuN20ujuVm0HPyKcIyezphMHsK~GbYMNFiyTz8ko~Kd2wHaeXKWQh6pXyjQJzT4Bwcv1Y9JtPC5b1P5VpwQaLlMJJvblRi8jbRAbimjsxxrMSG6YX8Ks99tsdnQ6YOHGzTPoGpHFgBiROSYwXtC~BbFSv0XfhmN17ZfG6ZCXTbp-xVs-4txSyS~hnS9dL9xHWIv9MNbJzZhI7YztxWgMR3ZNMwR-W2fUeHAcZusmvbm3r-NpIC0O0p9LDDcu7Vxszk~QD~qylFfIT3j8kwu4RDExgqyelVdXVVSlyriHWoIdt9BklqwI1dbAEoLAfG7IZ3921dP4-MH7~AS8Jn3foNe8CAUvu2baRNRIAu75GknCFV5gGIuRRJjFNnrt~vaZfIQP6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3HWfbGlqztnwMY3ChbVHkDwJv52n9ElA-cWCRJp8lquVU4H-l2kY5Me1QlpY~7qFy
Первые 516 символов (SVAxp......~vaZfIQP6AAAA) - это открытый (публичный) ключ. Он также играет роль адреса в I2P-сети, он же - dest-hash. Оставшиеся символы и есть приватный ключ I2P-адреса. Чтобы начать использовать I2P-адрес, необходимо знать его закрытый ключ (иначе любой мог бы захватить чей угодно адрес). Т.е., сообщив кому-то свой закрытый ключ, вы фактически отдаете ему в пользование свой I2P-адрес. Поэтому не передавайте свой закрытый ключ никому. Биткоин-кошелек никуда не отправляет этот ключ, а только использует для авторизации у I2P-сервиса. Публиковать нужно только открытый ключ, т.е. только первые 516 символов. Так же эти 516 символов перед публикацией можно укоротить, превратив в b32-адрес, с помощью этого скрипта https://bitcointalk.org/index.php?topic=140885.msg1501489#msg1501489. Указанные выше публичный+приватный ключ НЕ являются верными, использовать их не получится, они указаны просто для примера. Простейший способ сгенерировать себе постоянный адрес - запустить кошелек c параметром -generatei2pdestination. Вам будет показан сгенерированный адрес+приватный ключ, которые можно скопировать в конфиг-файл, а также base64-адрес и b32-адрес, которые можно опубликовать.

Инструкции по сборке для linux:
0) установить необходимые библиотеки для сборки биткоина, никаких дополнительных зависимостей мой патч НЕ добавляет.
1) перейти в директорию с исходниками и запустить скрипт 1.build-unix.sh
Code:
./1.build-unix.sh

Инструкции по кросскомпиляции для windows под линуксом:
0) установить mingw32
1) скачать зависимости скриптом 1.env-setup.sh (нужно выполнять только один раз)
Code:
./1.env-setup.sh
2) собрать зависимости скриптом 2.build-deps.sh (нужно выполнять только один раз)
Code:
./2.build-deps.sh
3) собрать биткоин скриптом 3.build-linux-mingw.sh
Code:
./3.build-linux-mingw.sh

Все собранные бинарники будут сложены в директорию <директория с исходниками>/release
Скриптов для сборки под виндой у меня нет, т.к. для винды я собираю кросскомпиляцией, как показано выше.

ВНИМАНИЕ! Программа предоставляется "как есть" безо всяких гарантий. НЕ ЗАПУСКАЙТЕ ИСПОЛНЯЕМЫЕ ФАЙЛЫ С ПРАВАМИ СУПЕРПОЛЬЗОВАТЕЛЯ/АДМИНИСТРАТОРА!

Если Вам нравится мой проект, поддержите дальнейшую разработку 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754

Примечание:
Ради справедливости, bitcoin-qt почти поддерживает i2p, хотя упоминание этого было выпилено из release notes. Но если открыть исходники, то можно увидеть, что работа в этом направлении велась. Однако, это была не нативная поддержка, а использовался GarliCat (https://www.cypherpunk.at/onioncat/wiki/GarliCat). Вообще, GarliCat является костылем для i2p, и это одна из главных причин, из-за которой от него отказались в биткойне (https://github.com/bitcoin/bitcoin/pull/1913). Upd: начиная с версии 0.7.2, упоминание i2p убрали не только из release notes, но и из исходников.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
1714876905
Hero Member
*
Offline Offline

Posts: 1714876905

View Profile Personal Message (Offline)

Ignore
1714876905
Reply with quote  #2

1714876905
Report to moderator
1714876905
Hero Member
*
Offline Offline

Posts: 1714876905

View Profile Personal Message (Offline)

Ignore
1714876905
Reply with quote  #2

1714876905
Report to moderator
1714876905
Hero Member
*
Offline Offline

Posts: 1714876905

View Profile Personal Message (Offline)

Ignore
1714876905
Reply with quote  #2

1714876905
Report to moderator
"If you don't want people to know you're a scumbag then don't be a scumbag." -- margaritahuyan
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714876905
Hero Member
*
Offline Offline

Posts: 1714876905

View Profile Personal Message (Offline)

Ignore
1714876905
Reply with quote  #2

1714876905
Report to moderator
awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
January 25, 2013, 05:29:54 AM
 #2

Очевидно потому, что серверная часть крутиться под JVM ?

Was mich nicht umbringt macht mich stärker [F.N.]
giv (OP)
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
January 25, 2013, 05:33:08 AM
 #3

С чего вы взяли? Торренты, например, отлично работают в I2P. Конечно скорость не такая, как в обычном инете, но вполне терпимо. Вообще, чем больше узлов в I2P, тем выше скорость. Еще в версии 0.9.4 пофиксили какие-то баги, теперь скорость и стабильность стала гораздо лучше.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
January 25, 2013, 05:53:19 AM
 #4

Понятно, но по сравнению с устоявшейся традиционной практикой очень оригинальный подход у разработчиков: обычно делают наоборот - серверную часть нативную  (на С/С++) а клиента на Java ...

Was mich nicht umbringt macht mich stärker [F.N.]
awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
January 25, 2013, 06:15:55 AM
 #5

Это понятно. Я к тому, что в ранних версиях у них была отдельная серверная часть на Java и отдельный клиент на C.

P.S.  И по-поводу Qona - у них же есть опренсорсная Syndie ...

Was mich nicht umbringt macht mich stärker [F.N.]
Yurock
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


View Profile
January 25, 2013, 06:20:29 AM
 #6

https://bitcointalk.org/index.php?topic=90087
giv (OP)
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
January 25, 2013, 06:21:37 AM
 #7

так написано в этой бумаге:
http://www.magnusbrading.com/phantom/phantom-design-paper.pdf
Раздел 4.7

Java-приложения да, потребляют больше RAM
чем их аналоги написанные на др.языках,

НО конкретно именно в этом случае думаю
имелось ввиду несовершенство дизайна I2P.


В разделе 4.7 написаны общие слова, что существующие системы имеют низкую скорость. Вообще, судить о какой-то технологии по документу, описывающему конкурирующую технологию, мне кажется, неправильно. Через мою и2п-ноду за несколько дней перекачиваются десятки ГБ трафика. 700 МБ фильм в и2п-торренте скачивается за несколько часов. У биткойна не такой уж большой трафик, чтобы положить эту сеть.

Кстати, сейчас усиленно пилят С++ и2п-роутер https://twitter.com/i2p/status/287274345456353280
Мне тоже не нравится, что приходится юзать JVM.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
January 25, 2013, 06:37:22 AM
 #8

Кстати, сейчас усиленно пилят С++ и2п-роутер https://twitter.com/i2p/status/287274345456353280

Вот это будет годное изделие! Возможно, получиться и в маршрутизатор это дело запихнуть (если  опенсорс сделают) ...

Was mich nicht umbringt macht mich stärker [F.N.]
giv (OP)
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
January 25, 2013, 06:49:30 AM
 #9

>> У биткойна не такой уж большой трафик, чтобы положить эту сеть.
Это ПОКА не большой.
нужно думать на перспективу. )

Насчет реинкарнации I2P на C++ - это хорошие
новости !

---------
Но я бы все же оставил I2P для свободы слова.

А биткойн анонимизацию делал бы
в отдельной анон-сети.



А у и2п ПОКА мало нод. Больше нод - больше скорость и полоса пропускания.
Зачем еще одна скрытосеть, зачем плодить сущности?

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 25, 2013, 07:20:19 AM
 #10

А у и2п ПОКА мало нод. Больше нод - больше скорость и полоса пропускания.
Зачем еще одна скрытосеть, зачем плодить сущности?

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

Еще надо Ц заменить на что-то более читаемое - сейчас закладку в Ц-ном мусоре невозможно
обнаружить даже если показать на нее пальцем. 

Вон в самом SSH даже была закладка, комментарии излишни как говориться.

Vladimir
PS  короче говоря - больше проектов, всяких и разных Wink
giv (OP)
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
January 25, 2013, 08:20:09 AM
 #11

А у и2п ПОКА мало нод. Больше нод - больше скорость и полоса пропускания.
Зачем еще одна скрытосеть, зачем плодить сущности?

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

Еще надо Ц заменить на что-то более читаемое - сейчас закладку в Ц-ном мусоре невозможно
обнаружить даже если показать на нее пальцем.  

Вон в самом SSH даже была закладка, комментарии излишни как говориться.

Vladimir
PS  короче говоря - больше проектов, всяких и разных Wink


А я все ждал, когда же твв припрется и эту тему загадить.
Ты опять упоролся? Тебе русским языком написано, что сейчас I2P написан на Java и работает под JVM, какой Ц? К тому же, если ты не можешь читать код на С/C++, то не надо думать, что все остальные настолько же глупы. Пруф на закладку в ssh?

@Ukigo
Пробовал через прокси - не взлетело. Это было первое, что я попробовал. Кошелек не заработал, вот SSH заработал (кстати, это неплохой способ обходить фаерволы и НАТ - поднять и2п-туннель и заходить на комп через него, только время отклика иногда большое). Сейчас уже даже не помню почему, но кошельки не соединялись. К тому же, на сколько я понял, и2п-прокси не поддерживает base64-hash, а только base32 адреса. Кошелек, на который приходят соединения через и2п-прокси будет видеть их как соединения с адреса 127.0.0.1. В стандартном клиенте много чего делается с адресами, они выстраиваются по рейтингу, банятся за неправильное поведение, ротируются и т.д. Все эти фичи нереализуемы через и2п-прокси. Я же хочу работать именно с dest-hash как с адресами, т.е. чтобы клиент видел dest-hash, понимал, что это адрес, и делал с ним все, что он делает с обычными адресами. Короче, меня не интересуют TCP/IP соединения через I2P, меня интересуют I2P соединения, т.е. нативная поддержка безо всяких костылей.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
giv (OP)
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
January 25, 2013, 09:11:31 AM
 #12

I2P менять не придется. Придется менять протокол биткойна. И это самая большая проблема. Смотрим сюда https://en.bitcoin.it/wiki/Protocol_specification в раздел Network address, и видим, что на адрес в протоколе выделено всего 16 байт + 2 байта на номер порта. Естественно впихнуть в эту структуру 512+4 байта dest-hash не получится. Т.е. нужно заводить дополнительное поле.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
January 25, 2013, 09:46:51 AM
 #13

А если клиенту прикрутить внутренний "псевдо I2P-NAT-DNS" ? И мапить  dest-hash на виртуальные адреса (например IPV6) по внутренней таблице трансляции. Хотя это, конечно, мало чем отличается от 127.0.0.1.

Was mich nicht umbringt macht mich stärker [F.N.]
giv (OP)
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
January 25, 2013, 10:40:42 AM
 #14

мапить  dest-hash на виртуальные адреса (например IPV6) по внутренней таблице трансляции. Хотя это, конечно, мало чем отличается от 127.0.0.1.

То, что вы предлагаете и называется GarliCat. Они берут base32 адрес, обрезают его, добавляют к нему magic-число (чтобы отличать свои адреса от остальных IPv6), полученное значение считают IPv6 адресом. Костыль еще тот, особенно, если учесть, что получаемый адрес, строго говоря, не является уникальным.

Форк делать не хочу. Сами разработчики рассматривали(-ют) вопрос об изменении протокола. По ссылке в первом посте на гитхаб
Quote
This will most likely imply a network protocol change, and extension of the 'addr' message.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 25, 2013, 10:48:20 AM
 #15

Опять вы какой-то лисапед изобретаете, с квадратными колесами...

Зачем трогать сам биткоин?  Пусть работает как есть!
Какой смысл его засовывать в i2p?  Извращенцы Wink


Вам надо просто сделать какие-то гейты или сервисы с ним в i2p сети, вот и все.

То есть по i2p коннектитесь с сетью биткойна - она дальше гоняет транзы сама по себе, как привыкла.


Нефиг трогать протокол - во-первых это не имеет смысл тк траффик в i2p всегда будет "дороже",
а во-вторых любое изменение это новые глюки.  Вы тут все деньги не храните там чтоли,
что вам пофиг на глюки в протоколе? Wink

Vladimir
awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
January 25, 2013, 10:57:34 AM
 #16

сейчас в Биткойне транзы на IPv4 отключены,
и вряд ли они захотят разрешить подобное
 для IPv6 (

И потом мапинг на локальном узле вряд ли
решает проблему адресации удаленных узлов.

Насколько я понял, разговор идет именно о адресации удаленных узлов. В настоящий момент последним клиентом поддерживаются:
Code:
-onlynet=<net>         Only connect to nodes in network <net> (IPv4, IPv6 or Tor)

В обсуждаемом нами случае к IPv4, IPv6 or Tor должна добавиться I2P.

То, что вы предлагаете и называется GarliCat. Они берут base32 адрес, обрезают его, добавляют к нему magic-число (чтобы отличать свои адреса от остальных IPv6), полученное значение считают IPv6 адресом. Костыль еще тот, особенно, если учесть, что получаемый адрес, строго говоря, не является уникальным.

А я даже и не знал, что заново придумал GarliCat !  Shocked
В каком-то мануале по построению IPv6 тоннелей по 6in4 читал о хитрой схеме генерации IPv6 адреса из текущего (локального) IPv4.
Можно использовать эту-же схему для формирования уникальных IPv6 адресов.

Was mich nicht umbringt macht mich stärker [F.N.]
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 25, 2013, 11:01:09 AM
 #17



я смотрю вы не мало копаетесь в софте, но у вас какая-то каша в голове IMHO...

Поймите простую вещь:  кошелек битка можно условно разделить как бы на 2 части.
Одна часть это то что работает с wallet dat, вот ее-то и держите у себя,
а вторая часть это "сетевая", которая и поддерживает всякие коннекты по сети и тд и тп.

Дак вот, засовывать "сетевую" часть в тор или i2p глупо тк эти сети тормозные и не надежные,
более дорогие(траффик несколько раз проходит через узлы) и работа через них не добавит
никакой пользы для сети биткойна.  Так что пусть уж лучше "сетевая" часть работает как может
и там где она есть.  Если хотите скрыть вообще что у вас стоит кошелек - не ставьте его совсем
и пользуйтесь "сетевой" частью через тор или и2п, но дальше она должна работать как обычно.


Вот обратиться к разработчикам по поводу "отделения ужа от ежа" можно и нужно, это даже полезно.
(у обычных клиентов будут сразу запускаться обе части, а параноики могут настроить так,
чтобы ваша "кошельковая" часть работала через чужую "сетевую" часть через тор или и2п)

Vladimir
giv (OP)
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
January 25, 2013, 11:38:25 AM
Last edit: January 25, 2013, 11:50:28 AM by giv
 #18

Насколько я понял core devs, просто отказались
от "костыля" и никакой дальнейшей работы
в плане поддержки I2P в ближайшее время
 они не планируют.

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

Насколько я понял, разговор идет именно о адресации удаленных узлов. В настоящий момент последним клиентом поддерживаются:
Code:
-onlynet=<net>         Only connect to nodes in network <net> (IPv4, IPv6 or Tor)

В обсуждаемом нами случае к IPv4, IPv6 or Tor должна добавиться I2P.

Именно! Никаких форков, новой валюты и прочего. У пользователя просто появится возможность указывать помимо ip-адресов и адресов из инета i2p-хеши и адреса b32 (если конечно он сам подключен к i2p). Тот же клиент, тот же биткоин, те же блоки, одна сеть (просто смешанная - ip/i2p), одни транзакции. Один и тот же кошелек может одновременно находится и в ip, и в i2p сети. В то же время кто-то может захотеть работать только в i2p, а кто-то не заморачивается и работает только в ip. Тот кто работает только в i2p может связываться с остальной сетью в ip через те кошельки, которые работают одвременно и там, и там. Такие кошельки будут являться как бы гейтами между сетями. Преимущество такого подхода в том, что если биткойны начнут щемить на уровне провайдеров или протоколов, можно переехать в i2p с сохранением всей инфраструктуры, текущей базы транзакций, кошельками и прочим. Т.е. вся сеть может буквально за пару часов переехать в i2p, и при этом НИЧЕГО не изменится, все деньги останутся у своих владельцев, все сервисы (сайты) откроются уже в i2p (чтоб сайт был доступен из i2p нужно просто поднять туннель и перенаправить его на 80 или 443 порт).

В каком-то мануале по построению IPv6 тоннелей по 6in4 читал о хитрой схеме генерации IPv6 адреса из текущего (локального) IPv4.
Можно использовать эту-же схему для формирования уникальных IPv6 адресов.
Проблема в том, что ipv4 имеет размер 4 байта, и его можно впихнуть в 16 байт ipv6, сохранив уникальность, а i2p-адрес имеет размер 512 байт (строго говоря 516, но последние 4 символа всегда ''АААА"), и впихнуть его в ipv6, сохранив уникальность, никак не получается.

Edit
Еще одно преимущество в том, что в I2P вашим идентификатором/адресом является dest-hash, который никак к вам не привязан и легко (одним щелчком мышки) может быть заменен на новый. Это перекликается с псевдослучайностью адресов в биткойне - вы для каждой транзакции можете генерировать новый биткойн-адрес и новый dest-hash. Полная анонимность.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 25, 2013, 12:51:39 PM
 #19

Преимущество такого подхода в том, что если биткойны начнут щемить на уровне провайдеров или протоколов, можно переехать в i2p с сохранением всей инфраструктуры, текущей базы транзакций, кошельками и прочим. Т.е. вся сеть может буквально за пару часов переехать в i2p, и при этом НИЧЕГО не изменится,

уверен?..

Там же получается ДВЕ сети, наложенных друг на друга - и каждая из них УМНАЯ...


То есть это дублирование функций и умничанье может привести к таким глюкам, что мало не покажеться...

Vladimir
PS  кстати у и2п и тора есть какие-то защиты от зацикливания пакетов и тп?
Yurock
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


View Profile
January 25, 2013, 04:55:41 PM
 #20

Пруф на закладку в ssh?
+1
Гугл молчит.
Pages: [1] 2 3 4 5 6 7 8 »  All
  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!