Compare commits

..

23 Commits

Author SHA1 Message Date
r4sas b003a07f1b 2.44.0
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-11-20 19:18:42 +00:00
R4SAS 3b328d7f7c [i18n] pull translation updates
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-11-20 08:20:48 +03:00
R4SAS f2b7ae1ada [jni] disable stack protector
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-11-20 08:20:47 +03:00
R4SAS fce1dc98d0 [i18n] pull translation updates
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-11-20 08:20:46 +03:00
r4sas 5d86c53204 fastlane: add icon
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-11-03 19:26:21 +00:00
r4sas a88037692f update submodules
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-11-03 19:25:54 +00:00
R4SAS 67a98991d0 fix binary build
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-09-18 11:45:05 +03:00
R4SAS a3cddc954d fix typo
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-09-18 11:11:39 +03:00
R4SAS a36131b1bc [i2pd] update to trunk, fix build
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-09-18 10:57:27 +03:00
R4SAS e0a2d6f015 [i18n] add translations from crowdin
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-09-04 22:39:26 +03:00
R4SAS a411f9132f [i18n] add Ukrainian translation
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-08-24 11:29:03 +03:00
R4SAS e2dfde17bf 2.43.0
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-08-21 23:13:06 +03:00
R4SAS 447407483d switch to i2pd 2.43.0, pull translations updates
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-08-21 23:07:44 +03:00
r4sas e925b58239 [i2pd] update to trunk
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-19 19:32:10 +00:00
r4sas 1a4e0c02de [i2pd] update to trunk
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-14 10:36:37 +00:00
r4sas b0f8bf87ba [i18n] fix translation directory name
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-09 19:06:18 +00:00
r4sas 99fc0992f2 [i18n] add Simplified Chinese translation
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-09 18:21:23 +00:00
r4sas e27534dbbe [i2pd] enable ssu2 by default and disable ssu
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-09 18:16:51 +00:00
r4sas 8abfd1f5fb [i2pd] update to trunk
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-09 18:14:58 +00:00
R4SAS 6c162bc689 [i2pd] update to trunk
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-07-10 01:27:39 +03:00
R4SAS a61012f72d switch to openssl 1.1.1q
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-07-10 01:25:34 +03:00
R4SAS 2bdb97db0f remove unused READ_PHONE_STATE permission
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-07-10 01:21:32 +03:00
r4sas d72e3aeea6 2.42.1
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-05-25 16:31:56 +00:00
24 changed files with 250 additions and 11 deletions
+4 -4
View File
@@ -14,8 +14,8 @@ android {
applicationId "org.purplei2p.i2pd"
targetSdkVersion 29
minSdkVersion 16
versionCode 2420000
versionName "2.42.0"
versionCode 2440000
versionName "2.44.0"
archivesBaseName += "-$versionName"
ndkVersion "21.4.7075529"
@@ -70,8 +70,8 @@ android {
}
compileOptions {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
+2 -1
View File
@@ -24,7 +24,8 @@ LOCAL_SRC_FILES := \
$(DAEMON_SRC_PATH)/Daemon.cpp \
$(DAEMON_SRC_PATH)/UPnP.cpp \
$(DAEMON_SRC_PATH)/HTTPServer.cpp \
$(DAEMON_SRC_PATH)/I2PControl.cpp
$(DAEMON_SRC_PATH)/I2PControl.cpp \
$(DAEMON_SRC_PATH)/I2PControlHandlers.cpp
include $(BUILD_SHARED_LIBRARY)
+1 -1
View File
@@ -4,7 +4,7 @@ APP_STL := c++_static
# Enable c++17 extensions in source code
APP_CPPFLAGS += -std=c++17 -fexceptions -frtti
APP_CPPFLAGS += -DANDROID -D__ANDROID__ -DUSE_UPNP -Wno-deprecated-declarations -fstack-protector
APP_CPPFLAGS += -DANDROID -D__ANDROID__ -DUSE_UPNP -Wno-deprecated-declarations
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
APP_CPPFLAGS += -DANDROID_ARM7A
endif
-1
View File
@@ -6,7 +6,6 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
+6 -2
View File
@@ -12,7 +12,7 @@ loglevel = none
ipv4 = true
ipv6 = false
# ssu = true
ssu = false
bandwidth = L
# share = 100
@@ -23,6 +23,10 @@ bandwidth = L
[ntcp2]
enabled = true
[ssu2]
enabled = true
published = true
[http]
enabled = true
address = 127.0.0.1
@@ -63,7 +67,7 @@ enabled = false
# port = 7656
[precomputation]
elgamal = true
elgamal = false
[upnp]
enabled = true
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Red sin fronteras</string>
<string name="action_start">Iniciar</string>
<string name="action_stop">Detener</string>
<string name="action_exit">Salir</string>
<string name="action_graceful_stop">Parar con gracia</string>
<string name="action_cancel_graceful_stop">Cancelar parada con gracia</string>
<string name="action_reload_tunnels_config">Recargar túneles</string>
<string name="action_start_webview">Abrir Consola Web</string>
<string name="action_settings">Ajustes</string>
<string name="graceful_stop_is_already_in_progress">La parada con gracia ya se ha iniciado</string>
<string name="graceful_stop_is_in_progress">La parada con gracia está en proceso</string>
<string name="gracefulShutdownInProgress">Apagado con gracia en proceso</string>
<string name="already_stopped">Ya se ha parado</string>
<string name="uninitialized">Inicializando aplicación...</string>
<string name="starting">Iniciando aplicación...</string>
<string name="jniLibraryLoaded">Bibliotecas JNI cargadas</string>
<string name="startedOkay">Aplicación iniciada</string>
<string name="startFailed">Error al iniciar</string>
<string name="stopped">Aplicación detenida</string>
<string name="stopping">Deteniendo aplicación...</string>
<string name="remaining">restantes</string>
<string name="services">Servicios internos</string>
<string name="services_http_proxy">Proxy HTTP</string>
<string name="services_socks_proxy">Proxy SOCKS5</string>
<string name="title_activity_i2_pdperms_asker_prompt">Permiso</string>
<string name="permDenied">Permiso de escribir a la tarjeta SD denegado, necesitas permitirlo para continuar</string>
<string name="permRequired">Se requiere acceso de escritura de la tarjeta SD para escribir las claves y otros archivos en la carpeta I2PD de la tarjeta SD.</string>
<string name="retryPermRequest">Preguntar permisos de escritura de tarjeta SD de nuevo</string>
<string name="menu_item_battery_optimizations_str">Optimizaciones de Batería</string>
<string name="battery_optimizations_enabled">Optimizaciones de batería activadas</string>
<string name="battery_optimizations_enabled_explained">Tu Android está realizando optimizaciones de batería importantes en I2PD que pueden ocasionar que el servicio se cierre sin razón.\nEs recomendable que desactives esas optimizaciones de batería.</string>
<string name="battery_optimizations_enabled_dialog">Tu Android estáTu Android está realizando optimizaciones de batería importantes en I2PD que pueden ocasionar que el servicio se cierre sin razón.\n\nSe te pedirá que las desactives.</string>
<string name="continue_str">Continuar</string>
<string name="device_does_not_support_disabling_battery_optimizations">Tu versión de Android no soporta desactivar las optimizaciones de batería</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">Tu versión de S.O Android no soporta desactivar optimizaciones de batería para ciertas aplicaciones.</string>
<string name="shutdown_canceled">Apagado planeado cancelado</string>
<string name="tunnels_reloading">Recargando configuración de túneles...</string>
<string name="settings_section0">Ajustes comunes</string>
<string name="settings_section_tunnels">Túneles</string>
<string name="autostart_enabled">Iniciar al arrancar</string>
<string name="add_tunnel_button">Añadir túnel</string>
<string name="add_tunnel">Gestión de túneles</string>
<string name="del_tunnel_button">Borrar túnel</string>
</resources>
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Rete senza confini</string>
<string name="action_start">Avvia</string>
<string name="action_stop">Arresta</string>
<string name="action_exit">Esci</string>
<string name="action_graceful_stop">Interruzione controllata</string>
<string name="action_cancel_graceful_stop">Annulla interruzione controllata</string>
<string name="action_reload_tunnels_config">Ricarica i tunnel</string>
<string name="action_start_webview">Apri la console web</string>
<string name="action_settings">Impostazioni</string>
<string name="graceful_stop_is_already_in_progress">L\'interruzione controllata è già in corso</string>
<string name="graceful_stop_is_in_progress">L\'interruzione controllata è in corso</string>
<string name="gracefulShutdownInProgress">Interruzione controllata in corso</string>
<string name="already_stopped">Già interrotto</string>
<string name="uninitialized">Inizializzazione dell\'applicazione...</string>
<string name="starting">L\'applicazione si sta avviando...</string>
<string name="jniLibraryLoaded">Caricate le librerie JNI</string>
<string name="startedOkay">Applicazione avviata</string>
<string name="startFailed">Avvio fallito</string>
<string name="stopped">Applicazione arrestata</string>
<string name="stopping">Applicazione in arresto...</string>
<string name="remaining">rimanenti</string>
<string name="services">Servizi interni</string>
<string name="services_http_proxy">Proxy HTTP</string>
<string name="services_socks_proxy">Proxy SOCKS5</string>
<string name="title_activity_i2_pdperms_asker_prompt">Messaggio</string>
<string name="permDenied">Permesso di scrittura scheda SD negato, è necessario consentirlo per continuare</string>
<string name="permRequired">L\'accesso in scrittura della scheda SD è richiesto per scrivare le chiavi e gli altri file nella cartella I2PD sulla scheda SD.</string>
<string name="retryPermRequest">Riprova a richiedere il permesso di scrittura sulla scheda SD</string>
<string name="menu_item_battery_optimizations_str">Ottimizzazione batteria</string>
<string name="battery_optimizations_enabled">Ottimizzazione batteria abilitata</string>
<string name="battery_optimizations_enabled_explained">Il tuo dispositivo Android sta eseguendo alcune pesanti ottimizzazioni della batteria su I2PD che potrebbero comportare l\'arresto di quest\'ultimo senza alcun motivo.\nSi raccomanda di consentire a I2PD di disabilitare queste ottimizzazioni della batteria.</string>
<string name="battery_optimizations_enabled_dialog">Il tuo dispositivo Android sta eseguendo alcune pesanti ottimizzazioni della batteria su I2PD che potrebbero comportare l\'arresto di quest\'ultimo senza alcun motivo.\n\nOra verrà richiesto di disabilitare queste ottimizzazioni della batteria.</string>
<string name="continue_str">Continua</string>
<string name="device_does_not_support_disabling_battery_optimizations">La versione del tuo dispositivo Android non supporta l\'esclusione delle ottimizzazioni della batteria</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">La versione del tuo dispositivo Android non supporta la visualizzazione della finestra di dialogo per l\'ottimizzazione della batteria per le applicazioni.</string>
<string name="shutdown_canceled">Arresto programmato annullato</string>
<string name="tunnels_reloading">Ricaricando le configurazioni dei tunnel...</string>
<string name="settings_section0">Impostazioni generali</string>
<string name="settings_section_tunnels">Tunnel</string>
<string name="autostart_enabled">Avvia all\'accensione</string>
<string name="add_tunnel_button">Aggiungi tunnel</string>
<string name="add_tunnel">Gestione tunnel</string>
<string name="del_tunnel_button">Elimina tunnel</string>
</resources>
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Мережа без кордонів</string>
<string name="action_start">Почати</string>
<string name="action_stop">Зупинити</string>
<string name="action_exit">Вийти</string>
<string name="action_graceful_stop">Плавна зупинка</string>
<string name="action_cancel_graceful_stop">Скасувати плавну зупинку</string>
<string name="action_reload_tunnels_config">Перезавантажити тунелі</string>
<string name="action_start_webview">Відкрити веб-консоль</string>
<string name="action_settings">Налаштування</string>
<string name="graceful_stop_is_already_in_progress">Плавна зупинка вже виконується</string>
<string name="graceful_stop_is_in_progress">Плавна зупинка у процесі</string>
<string name="gracefulShutdownInProgress">Виконується плавне завершення</string>
<string name="already_stopped">Вже зупинено</string>
<string name="uninitialized">Додаток запускається...</string>
<string name="starting">Додаток запускається...</string>
<string name="jniLibraryLoaded">Завантажено бібліотеки JNI</string>
<string name="startedOkay">Запуск додатку</string>
<string name="startFailed">Не вдалося запустити</string>
<string name="stopped">Додаток зупинено</string>
<string name="stopping">Додаток зупиняється...</string>
<string name="remaining">залишилось</string>
<string name="services">Внутрішні служби</string>
<string name="services_http_proxy">Проксі HTTP</string>
<string name="services_socks_proxy">Проксі SOCKS5</string>
<string name="title_activity_i2_pdperms_asker_prompt">Запит</string>
<string name="permDenied">Дозвіл на запис до SD-карти відхилений, Вам необхідно дозволити для продовження</string>
<string name="permRequired">Для запису ключів та інших файлів до теки I2PD на SD-карті потрібен доступ до передачі даних на SD-карті.</string>
<string name="retryPermRequest">Повторити запит на запис до SD-карти</string>
<string name="menu_item_battery_optimizations_str">Оптимізація батареї</string>
<string name="battery_optimizations_enabled">Оптимізацію батареї ввімкнено</string>
<string name="battery_optimizations_enabled_explained">Ваш Android виконує деякі складні оптимізації використання заряду на I2PD, які можуть призвести до встановлення демонів без будь-яких інших причин.\nРекомендується дозволити вимкнення цих оптимізації використання акумулятора.</string>
<string name="battery_optimizations_enabled_dialog">Ваш Android виконує деякі складні оптимізації використання заряду на I2PD, які можуть призвести до встановлення демонів без будь-яких інших причин.\n\nРекомендується дозволити вимкнення цих оптимізації використання акумулятора.</string>
<string name="continue_str">Далі</string>
<string name="device_does_not_support_disabling_battery_optimizations">Ваш пристрій не підтримує відключення оптимізації батареї</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">Ваша версія ОС Android не підтримує відображення діалогу для оптимізації заряду акумулятора для програм.</string>
<string name="shutdown_canceled">Плановане завершення скасоване</string>
<string name="tunnels_reloading">Перезавантаження налаштувань тунелів...</string>
<string name="settings_section0">Загальні налаштування</string>
<string name="settings_section_tunnels">Тунелі</string>
<string name="autostart_enabled">Автозапуск</string>
<string name="add_tunnel_button">Додайте тунель</string>
<string name="add_tunnel">Керування тунелями</string>
<string name="del_tunnel_button">Видалити тунель</string>
</resources>
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">网络无边界</string>
<string name="action_start">开始运行</string>
<string name="action_stop">停止运行</string>
<string name="action_exit">退出</string>
<string name="action_graceful_stop">平滑关闭</string>
<string name="action_cancel_graceful_stop">取消平滑关闭</string>
<string name="action_reload_tunnels_config">重新加载隧道</string>
<string name="action_start_webview">打开网页控制台</string>
<string name="action_settings">设置</string>
<string name="graceful_stop_is_already_in_progress">正在平滑的退出 I2P 网络...</string>
<string name="graceful_stop_is_in_progress">正在平滑关闭</string>
<string name="gracefulShutdownInProgress">正在平滑关闭 剩余时间:</string>
<string name="already_stopped">已停止</string>
<string name="uninitialized">应用程序正在初始化...</string>
<string name="starting">应用程序正在启动...</string>
<string name="jniLibraryLoaded">已加载Java本地接口库</string>
<string name="startedOkay">应用程序已启动</string>
<string name="startFailed">启动失败</string>
<string name="stopped">应用程序已停止</string>
<string name="stopping">应用程序正在停止运行...</string>
<string name="remaining">分钟</string>
<string name="services">内部服务</string>
<string name="services_http_proxy">HTTP 代理</string>
<string name="services_socks_proxy">SOCKS5 代理</string>
<string name="title_activity_i2_pdperms_asker_prompt">提示</string>
<string name="permDenied">SD 卡写入权限被拒绝,你需要允许它以继续</string>
<string name="permRequired">需要SD卡写入权限才能将密钥和其他文件写入SD卡上的 I2PD 文件夹中。</string>
<string name="retryPermRequest">重新尝试请求SD卡的写入权限</string>
<string name="menu_item_battery_optimizations_str">电池优化</string>
<string name="battery_optimizations_enabled">电池优化已启用</string>
<string name="battery_optimizations_enabled_explained">您的安卓设备正在对 I2Pd 进行严格的电池优化,这可能导致守护进程无缘无故停止运行。\n建议关闭这些电池优化。</string>
<string name="battery_optimizations_enabled_dialog">您的安卓设备正在对 I2Pd 进行严格的电池优化,这可能导致守护进程无缘无故停止运行。\n\n请点击继续以关闭电池优化。</string>
<string name="continue_str">继续</string>
<string name="device_does_not_support_disabling_battery_optimizations">您设备的 Android 版本不支持关闭电池优化</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">您设备的 Android 版本不支持打开电池优化的界面。</string>
<string name="shutdown_canceled">计划关闭已取消</string>
<string name="tunnels_reloading">正在重新加载隧道配置...</string>
<string name="settings_section0">通用设置</string>
<string name="settings_section_tunnels">隧道</string>
<string name="autostart_enabled">开机自启动</string>
<string name="add_tunnel_button">添加隧道</string>
<string name="add_tunnel">隧道管理</string>
<string name="del_tunnel_button">删除隧道</string>
</resources>
+1
View File
@@ -24,6 +24,7 @@ LOCAL_SRC_FILES := \
$(DAEMON_SRC_PATH)/UPnP.cpp \
$(DAEMON_SRC_PATH)/HTTPServer.cpp \
$(DAEMON_SRC_PATH)/I2PControl.cpp \
$(DAEMON_SRC_PATH)/I2PControlHandlers.cpp \
$(DAEMON_SRC_PATH)/i2pd.cpp \
include $(BUILD_EXECUTABLE)
@@ -0,0 +1 @@
* Updated codebase to 2.42.1
@@ -0,0 +1,5 @@
* Updated codebase to 2.43.0
* Remove unused READ_PHONE_STATE permission
* Switch to OpenSSL 1.1.1q
* Added Simplified Chinese translation
* Disable SSU and enable SSU2 for new installations
@@ -0,0 +1,4 @@
* Updated codebase to 2.44.0
* Switch to OpenSSL 1.1.1s
* Added Ukrainian, Spain and Italian translations
* Disable SSU and enable SSU2 for new installations
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol, Protocolo de Internet Invisible) es una capa de red anónima universal.
Todas las comunicaciones a través de I2P son anónimas y cifradas de extremo a extremo, los participantes no revelan sus direcciones IP reales.
Un <b>cliente de I2P</b> es un software utilizado para construir y utilizar redes I2P anónimas.
Tales redes son comúnmente utilizadas para aplicaciones de par en par (intercambio de archivos, criptomonedas) y aplicaciones anónimas cliente-servidor (sitios web, mensajería instantánea, servidores de chat).
<b>I2P</b> le permite a la gente de todo el mundo comunicarse y compartir información sin restricciones.
Para más información sobre <b>I2P</b>, puedes leer <a href="https://es.m.wikipedia.org/wiki/I2P">este artículo en Wikipedia</a>.
@@ -0,0 +1 @@
Implementación completa en C++ del cliente I2P
@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol) è un livello di rete anonimo universale.
Tutte le comunicazioni su I2P sono anonime e crittografate end-to-end, i partecipanti non rivelano i propri indirizzi IP reali.
<b>Il client I2P</b> è un software utilizzato per costruire e utilizzare reti I2P anonime.
Tali reti sono comunemente utilizzate per applicazioni peer-to-peer anonime (trasferimento file, cryptovalute) e applicazioni client-server anonime (siti web, applicazioni di messaggistica istantanea, server di chat).
<b>I2P</b> permette alle persone di tutto il mondo di comunicare e condividere informazioni senza restrizioni.
Per ulteriori informazioni riguardo <b>I2P</b>, puoi consultare l'<a href="https://en.m.wikipedia.org/wiki/I2P">articolo su Wikipedia</a>.
@@ -0,0 +1 @@
Implementazione C++ completa del client I2P
@@ -0,0 +1,9 @@
<b>I2P</b> (Невидимий Інтернет Протокол) - це універсальний анонімний шар мережі.
Усі повідомлення по I2P є анонімними та наскрізними до кінця зашифрованих, учасники не розкривають їхні реальні IP-адреси.
<b>I2P клієнт</b> є програмним забезпеченням для будівництва і використання анонімних I2P мереж.
Такі мережі зазвичай використовуються для анонімних однорангових додатків (обмін файлами, криптовалютами) та анонімних додатків на сервері клієнта (вебсайт, миттєві повідомлення, чат-сервери).
<b>I2P</b> дозволяє людям з усього світу обмінюватися інформацією без обмежень.
Для отримання додаткової інформації про <b>I2P</b>ви можете прочитати <a href="https://en.m.wikipedia.org/wiki/I2P">статтю у Вікіпедії</a>.
@@ -0,0 +1 @@
Повнофункціональна C++ реалізація I2P клієнта
@@ -0,0 +1,9 @@
<b>I2P</b> (隐形互联网计划) 是一个通用的匿名网络层。
所有通过 I2P 进行的通信都是匿名、端到端加密的,用户不会透露他们真实的 IP 地址。
<b>I2P 客户端</b> 是一个用于构建和使用匿名 I2P 网络的软件。
这种网络通常用于匿名的 P2P 应用(如文件共享、加密货币) 以及匿名的客户端-服务器架构的应用(如网站、即时通讯、聊天服务器等) 。
<b>I2P</b> 允许来自世界各地的人不受限制地交流和分享信息。
欲了解更多关于 <b>I2P</b>的信息,请参见 <a href="https://en.m.wikipedia.org/wiki/I2P">Wikipedia</a> 。
@@ -0,0 +1 @@
I2P 客户端的全功能C++ 实现