monero-project / kovri Goto Github PK
View Code? Open in Web Editor NEWThe Kovri I2P Router Project
License: Other
The Kovri I2P Router Project
License: Other
This includes i2pcontrol, http/socks proxy, server tunnels, and more.
First appeared after f2eab64.
*** Error in `./kovri': double free or corruption (out): 0x00007fcb7c054eb0 ***
======= Backtrace: =========
/usr/lib/libc.so.6(+0x72055)[0x7fcb97f48055]
/usr/lib/libc.so.6(+0x779a6)[0x7fcb97f4d9a6]
/usr/lib/libc.so.6(+0x7818e)[0x7fcb97f4e18e]
/usr/lib/libstdc++.so.6(_ZNSsD2Ev+0x64)[0x7fcb98a854e4]
./kovri(_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev+0x2e)[0xbd261c]
./kovri(_ZN5kovri3log13LogStreamImpl5FlushEv+0x146)[0xbc1d30]
./kovri(_ZN5kovri3log9LogStream5FlushEv+0x1c)[0xbc1da4]
./kovri(_ZN5kovri3log10LoggerImpl4InfoEv+0x1e)[0xbc4a62]
./kovri(_ZN5kovri3log6Logger4InfoEv+0x1b)[0xbc187d]
./kovri(_Z18DeprecatedLogPrintIJPKcEEvN5kovri3log8LogLevelEDpT_+0xff)[0xa15fcb]
./kovri(_Z18DeprecatedLogPrintIIPKcEEvDpT_+0x1d)[0xa142fe]
./kovri(_ZN3i2p6tunnel10TunnelPool20CreateOutboundTunnelEv+0xb2)[0xb3296c]
./kovri(_ZN3i2p6tunnel10TunnelPool13CreateTunnelsEv+0x205)[0xb31391]
./kovri(_ZN3i2p6tunnel7Tunnels17ManageTunnelPoolsEv+0xed)[0xb1204b]
./kovri(_ZN3i2p6tunnel7Tunnels13ManageTunnelsEv+0x48)[0xb110a4]
./kovri(_ZN3i2p6tunnel7Tunnels3RunEv+0x37a)[0xb10dd0]
./kovri(_ZNKSt12_Mem_fn_baseIMN3i2p6tunnel7TunnelsEFvvELb1EEclIIEvEEvPS2_DpOT_+0x65)[0xb29f83]
./kovri(_ZNSt5_BindIFSt7_Mem_fnIMN3i2p6tunnel7TunnelsEFvvEEPS3_EE6__callIvIEILm0EEEET_OSt5tupleIIDpT0_EESt12_Index_tupleIIXspT1_EEE+0x48)[0xb29eec]
./kovri(_ZNSt5_BindIFSt7_Mem_fnIMN3i2p6tunnel7TunnelsEFvvEEPS3_EEclIIEvEET0_DpOT_+0x2a)[0xb29e66]
./kovri(_ZNSt12_Bind_simpleIFSt5_BindIFSt7_Mem_fnIMN3i2p6tunnel7TunnelsEFvvEEPS4_EEvEE9_M_invokeIJEEEvSt12_Index_tupleIJXspT_EEE+0x28)[0xb29d20]
./kovri(_ZNSt12_Bind_simpleIFSt5_BindIFSt7_Mem_fnIMN3i2p6tunnel7TunnelsEFvvEEPS4_EEvEEclEv+0x1d)[0xb29909]
./kovri(_ZNSt6thread5_ImplISt12_Bind_simpleIFSt5_BindIFSt7_Mem_fnIMN3i2p6tunnel7TunnelsEFvvEEPS6_EEvEEE6_M_runEv+0x1c)[0xb28d70]
/usr/lib/libstdc++.so.6(+0xb9350)[0x7fcb98a6f350]
/usr/lib/libpthread.so.0(+0x74a4)[0x7fcb982854a4]
/usr/lib/libc.so.6(clone+0x6d)[0x7fcb97fbf13d]
======= Memory map: ========
00400000-00daf000 r-xp 00000000 fe:01 536451 /srv/git/push/kovri/build/kovri
00fae000-00fcf000 rw-p 009ae000 fe:01 536451 /srv/git/push/kovri/build/kovri
00fcf000-00fd1000 rw-p 00000000 00:00 0
02d59000-02ddd000 rw-p 00000000 00:00 0 [heap]
7fcb68000000-7fcb6806d000 rw-p 00000000 00:00 0
7fcb6806d000-7fcb6c000000 ---p 00000000 00:00 0
7fcb6c000000-7fcb6c021000 rw-p 00000000 00:00 0
7fcb6c021000-7fcb70000000 ---p 00000000 00:00 0
7fcb70000000-7fcb70049000 rw-p 00000000 00:00 0
7fcb70049000-7fcb74000000 ---p 00000000 00:00 0
7fcb74000000-7fcb74021000 rw-p 00000000 00:00 0
7fcb74021000-7fcb78000000 ---p 00000000 00:00 0
7fcb78000000-7fcb78091000 rw-p 00000000 00:00 0
7fcb78091000-7fcb7c000000 ---p 00000000 00:00 0
7fcb7c000000-7fcb7c056000 rw-p 00000000 00:00 0
7fcb7c056000-7fcb80000000 ---p 00000000 00:00 0
7fcb80000000-7fcb80021000 rw-p 00000000 00:00 0
7fcb80021000-7fcb84000000 ---p 00000000 00:00 0
7fcb85ffc000-7fcb85ffd000 ---p 00000000 00:00 0
7fcb85ffd000-7fcb867fd000 rw-p 00000000 00:00 0 [stack:8222]
7fcb877ff000-7fcb87800000 ---p 00000000 00:00 0
7fcb87800000-7fcb88000000 rw-p 00000000 00:00 0 [stack:8252]
7fcb88000000-7fcb88021000 rw-p 00000000 00:00 0
7fcb88021000-7fcb8c000000 ---p 00000000 00:00 0
7fcb8c7f9000-7fcb8c7fa000 ---p 00000000 00:00 0
7fcb8c7fa000-7fcb8cffa000 rw-p 00000000 00:00 0 [stack:8226]
7fcb8cffa000-7fcb8cffb000 ---p 00000000 00:00 0
7fcb8cffb000-7fcb8d7fb000 rw-p 00000000 00:00 0 [stack:8225]
7fcb8d7fb000-7fcb8d7fc000 ---p 00000000 00:00 0
7fcb8d7fc000-7fcb8dffc000 rw-p 00000000 00:00 0 [stack:8224]
7fcb8dffc000-7fcb8dffd000 ---p 00000000 00:00 0
7fcb8dffd000-7fcb8e7fd000 rw-p 00000000 00:00 0 [stack:8223]
7fcb8e7fd000-7fcb8e7fe000 ---p 00000000 00:00 0
7fcb8e7fe000-7fcb8effe000 rw-p 00000000 00:00 0 [stack:8221]
7fcb8effe000-7fcb8efff000 ---p 00000000 00:00 0
7fcb8efff000-7fcb8f7ff000 rw-p 00000000 00:00 0 [stack:8220]
7fcb8f7ff000-7fcb8f800000 ---p 00000000 00:00 0
7fcb8f800000-7fcb90000000 rw-p 00000000 00:00 0 [stack:8219]
7fcb90000000-7fcb90021000 rw-p 00000000 00:00 0
7fcb90021000-7fcb94000000 ---p 00000000 00:00 0
7fcb9428e000-7fcb942a2000 r-xp 00000000 fe:01 789727 /usr/lib/libresolv-2.22.so
7fcb942a2000-7fcb944a1000 ---p 00014000 fe:01 789727 /usr/lib/libresolv-2.22.so
7fcb944a1000-7fcb944a2000 r--p 00013000 fe:01 789727 /usr/lib/libresolv-2.22.so
7fcb944a2000-7fcb944a3000 rw-p 00014000 fe:01 789727 /usr/lib/libresolv-2.22.so
7fcb944a3000-7fcb944a5000 rw-p 00000000 00:00 0
7fcb944a6000-7fcb944ab000 r-xp 00000000 fe:01 789719 /usr/lib/libnss_dns-2.22.so
7fcb944ab000-7fcb946aa000 ---p 00005000 fe:01 789719 /usr/lib/libnss_dns-2.22.so
7fcb946aa000-7fcb946ab000 r--p 00004000 fe:01 789719 /usr/lib/libnss_dns-2.22.so
7fcb946ab000-7fcb946ac000 rw-p 00005000 fe:01 789719 /usr/lib/libnss_dns-2.22.so
7fcb946ae000-7fcb946b9000 r-xp 00000000 fe:01 789720 /usr/lib/libnss_files-2.22.so
7fcb946b9000-7fcb948b8000 ---p 0000b000 fe:01 789720 /usr/lib/libnss_files-2.22.so
7fcb948b8000-7fcb948b9000 r--p 0000a000 fe:01 789720 /usr/lib/libnss_files-2.22.so
7fcb948b9000-7fcb948ba000 rw-p 0000b000 fe:01 789720 /usr/lib/libnss_files-2.22.so
7fcb948ba000-7fcb948c0000 rw-p 00000000 00:00 0
7fcb948c4000-7fcb948c5000 ---p 00000000 00:00 0
7fcb948c5000-7fcb950c5000 rw-p 00000000 00:00 0 [stack:8218]
7fcb950c5000-7fcb950c6000 ---p 00000000 00:00 0
7fcb950c6000-7fcb958c6000 rw-p 00000000 00:00 0 [stack:8217]
7fcb958c6000-7fcb958c9000 r-xp 00000000 fe:01 789724 /usr/lib/libdl-2.22.so
7fcb958c9000-7fcb95ac8000 ---p 00003000 fe:01 789724 /usr/lib/libdl-2.22.so
7fcb95ac8000-7fcb95ac9000 r--p 00002000 fe:01 789724 /usr/lib/libdl-2.22.so
7fcb95ac9000-7fcb95aca000 rw-p 00003000 fe:01 789724 /usr/lib/libdl-2.22.so
7fcb95ace000-7fcb95c52000 r-xp 00000000 fe:01 817106 /usr/lib/libicuuc.so.56.1
7fcb95c52000-7fcb95e52000 ---p 00184000 fe:01 817106 /usr/lib/libicuuc.so.56.1
7fcb95e52000-7fcb95e62000 r--p 00184000 fe:01 817106 /usr/lib/libicuuc.so.56.1
7fcb95e62000-7fcb95e63000 rw-p 00194000 fe:01 817106 /usr/lib/libicuuc.so.56.1
7fcb95e63000-7fcb95e65000 rw-p 00000000 00:00 0
7fcb95e66000-7fcb960d2000 r-xp 00000000 fe:01 817103 /usr/lib/libicui18n.so.56.1
7fcb960d2000-7fcb962d1000 ---p 0026c000 fe:01 817103 /usr/lib/libicui18n.so.56.1
7fcb962d1000-7fcb962df000 r--p 0026b000 fe:01 817103 /usr/lib/libicui18n.so.56.1
7fcb962df000-7fcb962e1000 rw-p 00279000 fe:01 817103 /usr/lib/libicui18n.so.56.1
7fcb962e1000-7fcb962e2000 rw-p 00000000 00:00 0
7fcb962e6000-7fcb97ac9000 r--p 00000000 fe:01 817112 /usr/lib/libicudata.so.56.1
7fcb97ac9000-7fcb97cc8000 ---p 017e3000 fe:01 817112 /usr/lib/libicudata.so.56.1
7fcb97cc8000-7fcb97cc9000 r--p 017e2000 fe:01 817112 /usr/lib/libicudata.so.56.1
7fcb97cce000-7fcb97cd5000 r-xp 00000000 fe:01 789728 /usr/lib/librt-2.22.so
7fcb97cd5000-7fcb97ed4000 ---p 00007000 fe:01 789728 /usr/lib/librt-2.22.so
7fcb97ed4000-7fcb97ed5000 r--p 00006000 fe:01 789728 /usr/lib/librt-2.22.so
7fcb97ed5000-7fcb97ed6000 rw-p 00007000 fe:01 789728 /usr/lib/librt-2.22.so
7fcb97ed6000-7fcb98071000 r-xp 00000000 fe:01 789674 /usr/lib/libc-2.22.so
7fcb98071000-7fcb98270000 ---p 0019b000 fe:01 789674 /usr/lib/libc-2.22.so
7fcb98270000-7fcb98274000 r--p 0019a000 fe:01 789674 /usr/lib/libc-2.22.so
7fcb98274000-7fcb98276000 rw-p 0019e000 fe:01 789674 /usr/lib/libc-2.22.so
7fcb98276000-7fcb9827a000 rw-p 00000000 00:00 0
7fcb9827e000-7fcb98296000 r-xp 00000000 fe:01 789632 /usr/lib/libpthread-2.22.so
7fcb98296000-7fcb98495000 ---p 00018000 fe:01 789632 /usr/lib/libpthread-2.22.so
7fcb98495000-7fcb98496000 r--p 00017000 fe:01 789632 /usr/lib/libpthread-2.22.so
7fcb98496000-7fcb98497000 rw-p 00018000 fe:01 789632 /usr/lib/libpthread-2.22.so
7fcb98497000-7fcb9849b000 rw-p 00000000 00:00 0
7fcb9849e000-7fcb984b4000 r-xp 00000000 fe:01 789945 /usr/lib/libgcc_s.so.1
7fcb984b4000-7fcb986b3000 ---p 00016000 fe:01 789945 /usr/lib/libgcc_s.so.1
7fcb986b3000-7fcb986b4000 rw-p 00015000 fe:01 789945 /usr/lib/libgcc_s.so.1
7fcb986b6000-7fcb987b3000 r-xp 00000000 fe:01 789725 /usr/lib/libm-2.22.so
7fcb987b3000-7fcb989b2000 ---p 000fd000 fe:01 789725 /usr/lib/libm-2.22.so
7fcb989b2000-7fcb989b3000 r--p 000fc000 fe:01 789725 /usr/lib/libm-2.22.so
7fcb989b3000-7fcb989b4000 rw-p 000fd000 fe:01 789725 /usr/lib/libm-2.22.so
7fcb989b6000-7fcb98b28000 r-xp 00000000 fe:01 796393 /usr/lib/libstdc++.so.6.0.21
7fcb98b28000-7fcb98d28000 ---p 00172000 fe:01 796393 /usr/lib/libstdc++.so.6.0.21
7fcb98d28000-7fcb98d32000 r--p 00172000 fe:01 796393 /usr/lib/libstdc++.so.6.0.21
7fcb98d32000-7fcb98d34000 rw-p 0017c000 fe:01 796393 /usr/lib/libstdc++.so.6.0.21
7fcb98d34000-7fcb98d38000 rw-p 00000000 00:00 0
7fcb98d3e000-7fcb9910b000 r-xp 00000000 fe:01 824932 /usr/lib/libcryptopp.so
7fcb9910b000-7fcb9930b000 ---p 003cd000 fe:01 824932 /usr/lib/libcryptopp.so
7fcb9930b000-7fcb99354000 rw-p 003cd000 fe:01 824932 /usr/lib/libcryptopp.so
7fcb99354000-7fcb99358000 rw-p 00000000 00:00 0
7fcb9935e000-7fcb99408000 r-xp 00000000 fe:01 818971 /usr/lib/libboost_log.so.1.59.0
7fcb99408000-7fcb99608000 ---p 000aa000 fe:01 818971 /usr/lib/libboost_log.so.1.59.0
7fcb99608000-7fcb9960d000 r--p 000aa000 fe:01 818971 /usr/lib/libboost_log.so.1.59.0
7fcb9960d000-7fcb9960e000 rw-p 000af000 fe:01 818971 /usr/lib/libboost_log.so.1.59.0
7fcb9960e000-7fcb9960f000 rw-p 00000000 00:00 0
7fcb99616000-7fcb9961c000 r-xp 00000000 fe:01 818957 /usr/lib/libboost_chrono.so.1.59.0
7fcb9961c000-7fcb9981c000 ---p 00006000 fe:01 818957 /usr/lib/libboost_chrono.so.1.59.0
7fcb9981c000-7fcb9981d000 r--p 00006000 fe:01 818957 /usr/lib/libboost_chrono.so.1.59.0
7fcb9981d000-7fcb9981e000 rw-p 00007000 fe:01 818957 /usr/lib/libboost_chrono.so.1.59.0
7fcb9981e000-7fcb99843000 r-xp 00000000 fe:01 818959 /usr/lib/libboost_thread.so.1.59.0
7fcb99843000-7fcb99a42000 ---p 00025000 fe:01 818959 /usr/lib/libboost_thread.so.1.59.0
7fcb99a42000-7fcb99a44000 r--p 00024000 fe:01 818959 /usr/lib/libboost_thread.so.1.59.0
7fcb99a44000-7fcb99a45000 rw-p 00026000 fe:01 818959 /usr/lib/libboost_thread.so.1.59.0
7fcb99a46000-7fcb99a57000 r-xp 00000000 fe:01 818963 /usr/lib/libboost_date_time.so.1.59.0
7fcb99a57000-7fcb99c56000 ---p 00011000 fe:01 818963 /usr/lib/libboost_date_time.so.1.59.0
7fcb99c56000-7fcb99c57000 r--p 00010000 fe:01 818963 /usr/lib/libboost_date_time.so.1.59.0
7fcb99c57000-7fcb99c58000 rw-p 00011000 fe:01 818963 /usr/lib/libboost_date_time.so.1.59.0
7fcb99c5e000-7fcb99cd9000 r-xp 00000000 fe:01 818983 /usr/lib/libboost_program_options.so.1.59.0
7fcb99cd9000-7fcb99ed8000 ---p 0007b000 fe:01 818983 /usr/lib/libboost_program_options.so.1.59.0
7fcb99ed8000-7fcb99edb000 r--p 0007a000 fe:01 818983 /usr/lib/libboost_program_options.so.1.59.0
7fcb99edb000-7fcb99edc000 rw-p 0007d000 fe:01 818983 /usr/lib/libboost_program_options.so.1.59.0
7fcb99ede000-7fcb99fe9000 r-xp 00000000 fe:01 818968 /usr/lib/libboost_regex.so.1.59.0
7fcb99fe9000-7fcb9a1e9000 ---p 0010b000 fe:01 818968 /usr/lib/libboost_regex.so.1.59.0
7fcb9a1e9000-7fcb9a1ed000 r--p 0010b000 fe:01 818968 /usr/lib/libboost_regex.so.1.59.0
7fcb9a1ed000-7fcb9a1ef000 rw-p 0010f000 fe:01 818968 /usr/lib/libboost_regex.so.1.59.0
7fcb9a1f6000-7fcb9a20d000 r-xp 00000000 fe:01 818962 /usr/lib/libboost_filesystem.so.1.59.0
7fcb9a20d000-7fcb9a40c000 ---p 00017000 fe:01 818962 /usr/lib/libboost_filesystem.so.1.59.0
7fcb9a40c000-7fcb9a40d000 r--p 00016000 fe:01 818962 /usr/lib/libboost_filesystem.so.1.59.0
7fcb9a40d000-7fcb9a40e000 rw-p 00017000 fe:01 818962 /usr/lib/libboost_filesystem.so.1.59.0
7fcb9a40e000-7fcb9a411000 r-xp 00000000 fe:01 818956 /usr/lib/libboost_system.so.1.59.0
7fcb9a411000-7fcb9a610000 ---p 00003000 fe:01 818956 /usr/lib/libboost_system.so.1.59.0
7fcb9a610000-7fcb9a611000 r--p 00002000 fe:01 818956 /usr/lib/libboost_system.so.1.59.0
7fcb9a611000-7fcb9a612000 rw-p 00003000 fe:01 818956 /usr/lib/libboost_system.so.1.59.0
7fcb9a616000-7fcb9a638000 r-xp 00000000 fe:01 789673 /usr/lib/ld-2.22.so
7fcb9a80d000-7fcb9a816000 rw-p 00000000 00:00 0
7fcb9a834000-7fcb9a837000 rw-p 00000000 00:00 0
7fcb9a837000-7fcb9a838000 r--p 00021000 fe:01 789673 /usr/lib/ld-2.22.so
7fcb9a838000-7fcb9a839000 rw-p 00022000 fe:01 789673 /usr/lib/ld-2.22.so
7fcb9a839000-7fcb9a83b000 rw-p 00000000 00:00 0
7fcb9a83b000-7fcb9a841000 rw-p 00000000 00:00 0
7ffdb32b5000-7ffdb32d6000 rw-p 00000000 00:00 0 [stack]
7ffdb334e000-7ffdb3350000 r--p 00000000 00:00 0 [vvar]
7ffdb3350000-7ffdb3352000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Aborted (core dumped)
Timing with 0.9.24 release, remove coreVersion and stat_uptime.
A proposal at this point. See http://zzz.i2p/topics/1987
And auto-update feature that would (at the very least) notify the user of their out-of-date version.
$ sudo apt-get install g++ cmake libboost-all-dev libcrypto++-dev libssl-dev libssl1.0.0
$ git clone https://github.com/monero-project/kovri && cd kovri/build && cmake ../ && make
...
/kovri/src/core/util/BoostLog.cpp:9:40: fatal error: boost/core/empty_deleter.hpp: No such file or directory
#include <boost/core/empty_deleter.hpp>
^
compilation terminated.
$ sed -i "s:boost/core/empty_deleter.hpp:boost/utility/empty_deleter.hpp:" ../src/core/util/BoostLog.cpp && make
...
In file included from /kovri/src/core/util/BoostLog.cpp:4:0:
/kovri/src/core/util/BoostLog.h: In member function โvirtual kovri::log::EventStream& kovri::log::BoostEventStream::Flush() constโ:
/kovri/src/core/util/BoostLog.h:57:46: warning: no return statement in function returning non-void [-Wreturn-type]
virtual EventStream & Flush() const {};
^
/kovri/src/core/util/BoostLog.h: In member function โvirtual kovri::log::EventStream& kovri::log::BoostEventStream::operator<<(const std::vector<std::basic_string<char> >&) constโ:
/kovri/src/core/util/BoostLog.h:58:91: warning: no return statement in function returning non-void [-Wreturn-type]
virtual EventStream & operator << (const std::vector<std::string> & strs ) const {};
^
/kovri/src/core/util/BoostLog.h: At global scope:
/kovri/src/core/util/BoostLog.h:58:77: warning: unused parameter โstrsโ [-Wunused-parameter]
virtual EventStream & operator << (const std::vector<std::string> & strs ) const {};
^
/kovri/src/core/util/BoostLog.cpp:111:53: warning: unused parameter โkeyโ [-Wunused-parameter]
LogStream & LogStream::Meta(const std::string & key, std::string value)
^
/kovri/src/core/util/BoostLog.cpp:111:70: warning: unused parameter โvalueโ [-Wunused-parameter]
LogStream & LogStream::Meta(const std::string & key, std::string value)
^
/kovri/src/core/util/BoostLog.cpp: In member function โvoid kovri::log::LogStreamImpl::Flush()โ:
/kovri/src/core/util/BoostLog.cpp:175:15: error: use of deleted function โstd::basic_stringbuf<char>& std::basic_stringbuf<char>::operator=(std::basic_stringbuf<char>&&)โ
m_Str = std::stringbuf();
^
In file included from /kovri/src/core/util/OldLog.h:8:0,
from /kovri/src/core/util/Log.h:151,
from /kovri/src/core/util/BoostLog.h:3,
from /kovri/src/core/util/BoostLog.cpp:4:
/usr/include/c++/4.9/sstream:64:11: note: โstd::basic_stringbuf<char>& std::basic_stringbuf<char>::operator=(std::basic_stringbuf<char>&&)โ is implicitly deleted because the default definition would be ill-formed:
class basic_stringbuf : public basic_streambuf<_CharT, _Traits>
^
In file included from /usr/include/c++/4.9/ios:43:0,
from /usr/include/c++/4.9/ostream:38,
from /usr/include/c++/4.9/iostream:39,
from /kovri/src/core/util/Log.h:4,
from /kovri/src/core/util/BoostLog.h:3,
from /kovri/src/core/util/BoostLog.cpp:4:
/usr/include/c++/4.9/streambuf:810:7: error: โstd::basic_streambuf<_CharT, _Traits>& std::basic_streambuf<_CharT, _Traits>::operator=(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char; _Traits = std::char_traits<char>]โ is private
operator=(const basic_streambuf&) { return *this; };
^
In file included from /kovri/src/core/util/OldLog.h:8:0,
from /kovri/src/core/util/Log.h:151,
from /kovri/src/core/util/BoostLog.h:3,
from /kovri/src/core/util/BoostLog.cpp:4:
/usr/include/c++/4.9/sstream:64:11: error: within this context
class basic_stringbuf : public basic_streambuf<_CharT, _Traits>
^
src/core/CMakeFiles/kovri-core.dir/build.make:836: recipe for target 'src/core/CMakeFiles/kovri-core.dir/util/BoostLog.cpp.o' failed
@majestrate: ^
Referencing #33.
A courtesy reminder for us both.
@fluffypony
In REQUIREMENTS either remove/replace with something else or get our hands on VS >= 2013. At this point in time, I cannot verify that we build with VS; can anyone else?
When java i2p is officially released on their website, bump to .23. zzz confirmed that there's nothing else keeping us from bumping (spec-wise).
From the Java I2P Docs
The I2P Client Protocol (I2CP) exposes a strong separation of concerns between the router and any client that wishes to communicate over the network. It enables secure and asynchronous messaging by sending and receiving messages over a single TCP socket. With I2CP, a client application tells the router who they are (their "destination"), what anonymity, reliability, and latency tradeoffs to make, and where to send messages. In turn the router uses I2CP to tell the client when any messages have arrived, and to request authorization for some tunnels to be used.
If kovri implemented an i2cp server then every application that I know of that uses i2p could be used with kovri as well with 0 changes to their code. I think that this is the API that @fluffypony is searching for / trying to (re)create. Unless I am misunderstanding ( last time I checked he wants to find a router or spawn a new one if not found )
Just realised that you won't see this, as the relay is down and I can't connect to I2P:
[20:23:54] <fluffypony> so been fighting with boost the last few days
[20:24:56] <fluffypony> looks like there's a bug in boost
[20:25:01] <fluffypony> that's fixed in a more recent version
[20:25:35] <fluffypony> [ 4%] Building CXX object src/api/CMakeFiles/kovri-api.dir/I2PTunnel/HTTPProxy.cpp.o
[20:25:35] <fluffypony> In file included from /usr/include/boost/asio/ssl/context.hpp:786:0,
[20:25:35] <fluffypony> from /usr/include/boost/asio/ssl.hpp:19,
[20:25:35] <fluffypony> from /root/kovri/src/api/../core/util/HTTP.h:13,
[20:25:35] <fluffypony> from /root/kovri/src/api/I2PTunnel/HTTPProxy.cpp:15:
[20:25:35] <fluffypony> /usr/include/boost/asio/ssl/impl/context.ipp: In constructor 'boost::asio::ssl::context::context(boost::asio::ssl::context_base::method)':
[20:25:35] <fluffypony> /usr/include/boost/asio/ssl/impl/context.ipp:93:29: error: '::SSLv3_method' has not been declared
[20:25:35] <fluffypony> handle_ = ::SSL_CTX_new(::SSLv3_method());
[20:25:35] <fluffypony> ^
[20:25:35] <fluffypony> /usr/include/boost/asio/ssl/impl/context.ipp:96:29: error: '::SSLv3_client_method' has not been declared
[20:25:35] <fluffypony> handle_ = ::SSL_CTX_new(::SSLv3_client_method());
[20:25:35] <fluffypony> ^
[20:25:35] <fluffypony> /usr/include/boost/asio/ssl/impl/context.ipp:99:29: error: '::SSLv3_server_method' has not been declared
[20:25:35] <fluffypony> handle_ = ::SSL_CTX_new(::SSLv3_server_method());
[20:25:35] <fluffypony> ^
[20:25:47] <fluffypony> this is with boost 1.58
[20:26:19] <othe> osx?
[20:26:49] <fluffypony> no Ubuntu
[20:27:01] <fluffypony> and 1.58 is the latest boost I can get without building from scratch
[20:27:12] <othe> i see, because i think it works fine here on osx with 1.56
[20:27:14] <fluffypony> so if it's fixed in 1.59 or 1.60 I'm going to have to build from scratch
[20:38:38] <othe> oh
[20:38:42] <othe> i have 1.59 running
[20:38:49] <othe> not 1.58 anymore
[20:38:58] <othe> with 1.59 it works on osx at least
Blocker. Bails when parsing j_at_torontocrypto.org.crt. I thought x509v3 extensions were to blame but parg_at_mail.i2p.crt works fine. Most likely yet another implementation issue.
$ uname -a
Darwin 12.6.0 Darwin Kernel Version 12.6.0: root:xnu-2050.48.19~1/RELEASE_X86_64 x86_64
$ brew --version
0.9.5 (git revision ad9cd4; last commit 2015-11-22)
$ cmake --version
cmake version 3.4.0
$ brew install boost && brew install cryptopp
$ brew link boost && brew link cryptopp
$ cd build && rm -f CMakeCache.txt && cmake ../ && make
-- Performing Test CXX11_SUPPORTED
-- Performing Test CXX11_SUPPORTED - Success
-- Performing Test CXX0X_SUPPORTED
-- Performing Test CXX0X_SUPPORTED - Success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Boost version: 1.59.0
-- Found the following Boost libraries:
-- system
-- filesystem
-- regex
-- program_options
-- date_time
-- thread
-- chrono
-- Found Crypto++: /usr/local/include, /usr/local/lib/libcryptopp.a
-- Found MiniUPnP headers: /usr/local/include/miniupnpc
-- ---------------------------------------
-- Build type : Debug
-- Compiler vendor : Clang
-- Compiler version : 5.1.0.5030040
-- Compiler path : /usr/bin/c++
-- Install prefix: : /usr/local
-- Kovri data directory: /Users/administrator/Library/Application Support/kovri
-- Options:
-- AESNI : OFF
-- HARDENING : OFF
-- LIBRARY : ON
-- BINARY : ON
-- STATIC BUILD : OFF
-- UPnP : OFF
-- TESTS : OFF
-- BENCHMARKING : OFF
-- OPTIMIZATION : OFF
-- ---------------------------------------
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/administrator/kovri/build
[ 1%] Building CXX object core/CMakeFiles/kovri-core.dir/transport/NTCPSession.cpp.o
In file included from /Users/administrator/kovri/core/transport/NTCPSession.cpp:7:
/Users/administrator/kovri/core/util/Log.h:9:10: fatal error: 'chrono' file not found
#include <chrono>
^
1 error generated.
make[2]: *** [core/CMakeFiles/kovri-core.dir/transport/NTCPSession.cpp.o] Error 1
make[1]: *** [core/CMakeFiles/kovri-core.dir/all] Error 2
make: *** [all] Error 2
$ rm -f CMakeCache.txt && cmake -DBoost_INCLUDE_DIR=/usr/local/include/ ../ && make
-- Performing Test CXX11_SUPPORTED
-- Performing Test CXX11_SUPPORTED - Success
-- Performing Test CXX0X_SUPPORTED
-- Performing Test CXX0X_SUPPORTED - Success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Boost version: 1.59.0
-- Found the following Boost libraries:
-- system
-- filesystem
-- regex
-- program_options
-- date_time
-- thread
-- chrono
-- Found Crypto++: /usr/local/include, /usr/local/lib/libcryptopp.a
-- Found MiniUPnP headers: /usr/local/include/miniupnpc
-- ---------------------------------------
-- Build type : Debug
-- Compiler vendor : Clang
-- Compiler version : 5.1.0.5030040
-- Compiler path : /usr/bin/c++
-- Install prefix: : /usr/local
-- Kovri data directory: /Users/administrator/Library/Application Support/kovri
-- Options:
-- AESNI : OFF
-- HARDENING : OFF
-- LIBRARY : ON
-- BINARY : ON
-- STATIC BUILD : OFF
-- UPnP : OFF
-- TESTS : OFF
-- BENCHMARKING : OFF
-- OPTIMIZATION : OFF
-- ---------------------------------------
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/administrator/kovri/build
Scanning dependencies of target kovri-core
[ 1%] Building CXX object core/CMakeFiles/kovri-core.dir/transport/NTCPSession.cpp.o
In file included from /Users/administrator/kovri/core/transport/NTCPSession.cpp:7:
/Users/administrator/kovri/core/util/Log.h:9:10: fatal error: 'chrono' file not found
#include <chrono>
^
1 error generated.
make[2]: *** [core/CMakeFiles/kovri-core.dir/transport/NTCPSession.cpp.o] Error 1
make[1]: *** [core/CMakeFiles/kovri-core.dir/all] Error 2
make: *** [all] Error 2
Only reproducible when httpsReseedHostList is empty and httpReseedHostList has only two non-functioning hosts. See ReseedNowSU3().
Tied in heavily with #4 and not as simple as it seems. Our arg parser is split across six (yes ...six) files.
I propose we use boost::program_options and parse everything before the fork and router initialization. Sound sane, right?
hagen is MIA so we're leaving ./debian/ alone until we can find a new maintainer. zzz suggested contacting kytv a week before our next release.
Moved here from TODO.
Currently both point to anonimal/i2pd. Once @fluffypony is done working on his part, we can edit the config and complete this part of the transition.
Moved here from TODO.
Even with dependencies installed, doesn't build. Errors similar to here. Passing the appropriate -DCMAKE_C_COMPILER=
and -DCMAKE_CXX_COMPILER=
has no effect.
This could be a cmake issue or an improperly setup mingw64 (specific for Kovri) because we haven't provided the correct installation criteria or mingw-friendly dependencies.
Do we needs this? If so, why? Is it worth keeping? I think it causes more problems than solves. Apparently it is helpful for Windows.
2015-11-15 21:31:20 mlt- btw
2015-11-15 21:31:26 mlt- not that it might be relevant
2015-11-15 21:31:52 mlt- but when I attempted to use orignal's libi2pd as dll, there was an issue with exported variables
2015-11-15 21:32:00 mlt- across DLL /shared object boundary
2015-11-15 21:32:06 mlt- it is tricky on Windows
2015-11-15 21:32:22 mlt- and it is easier to export a function, read singleton,
2015-11-15 21:33:13 mlt- bottom line, on some platforms, it might be a PITA to export gloval variable across shared object
I need to verify this but after nuking ~/.kovri i noticed reseed still worked even though no certificates were loaded.
Moved here from TODO.
Blocker. Certs are never loaded -> Kovri will never reseed -> Kovri will bail.
The current implementation is questionable and not realistic. We need to look at library options.
Ticketing for housekeeping. @majestrate is currently was working on this. See branch crypto_refactor
.
Our objective: pimpl all crypto implementations so we can switch libraries if needed.
Related to #16. We need to implement ability to skip the extended option in case a router doesn't understand extended options. This was recently implemented in i2pd-bb.
Until our website is online, here is a database of meeting logs to date:
2015-11-01: http://pastethis.i2p/show/9650/
2015-11-15: http://pastethis.i2p/show/x1fenhi5f5IJltf6bPMx/
2015-11-30: http://pastethis.i2p/show/YUnb2Rahwu262yIfvdfp/
2015-12-13: http://pastethis.i2p/show/TfN8b664sM8I4S96B8Y1/
2016-01-03: http://pastethis.i2p/show/1RqCiw8E0KWSudrBtD1e/
2016-01-17: http://pastethis.i2p/show/rOjnGe73cxQSIdoge36O/
2016-01-31: http://zerobin.i2p/?8d9a7e50d96f4cba#EcuNvG8ZHANc1375PiWJ6m0xe4sbP27c1hw4mCxY7jQ=
2016-02-14: http://pastethis.i2p/show/YPP6HELrv1pU99bFuVpK/
2016-03-05: http://pastethis.i2p/show/10112/
2016-03-20: http://zerobin.i2p/?c862bb393b75a2c7#kCKLQ40WT1RqTCCxH8mdzbn0l7CE3Lu4V0qny92V5C4=
2016-05-01: http://zerobin.i2p/?4c9e65f4b1b18acf#ZleIKCHBGfc9bvNiqujTwGG6vkmos8hFKOGTTybPP9k=
2016-05-08: https://getmonero.org/2016/05/08/logs-for-the-kovri-dev-meeting-held-on-2016-05-08.html
2016-05-22: https://getmonero.org/2016/05/22/logs-for-the-kovri-dev-meeting-held-on-2016-05-22.html
Moved here from TODO.
Moved here from TODO.
Currently our cmake copies resources to a user's data directory. This will completely override a user's configuration files with every update. A better strategy should be in place, or at least consider creating a better make install
.
To prevent MiTM, we need to switch to HTTPS immediately. Java I2P shut down http roughly a year ago and i2pd 0.10.0 never caught up. This is a priority ticket. Related to #18.
~fluffypon I also think we have to consider putting together an implementation comparison page (something like https://geti2p.net/en/comparison/tor)
~fluffypon but not just yet
~fluffypon then
&anonimal And the comparisons will be between kovri and every other i2p router?
~fluffypon anonimal: yes
Tl;dr: "eliminate sam/bob/http router console/and more in order to become a easily maintainable, more-likely-to-be-easily-reviewed smaller router that is geared toward a hosting a single i2cp server (API accessible)".
This will provide a greater likelihood of maintaining a very secured router; far greater than what i2pd can currently offer. Also, think 'OpenBSD-rigorousness' in terms of design and decision.
2015-12-02 zzz [14:53:35] anonimal, only guessing, but TLS is probably only used for reseed now
2015-12-02 zzz [14:53:57] near future: use it for i2pcontrol (orignal has recently done this in his branch)
2015-12-02 zzz [14:54:30] longer term: optional for i2ptunnel clients and servers, SAM, BOB, ...
2015-12-02 +psi [14:59:43] and i2cp
2015-12-02 zzz [15:15:33] yup
2015-12-02 zzz [15:16:26] on the java side, it isn't always pretty, and it's taken several years, but we finally have utility classes to easily use SSL/TLS securely, and create/manage keys, certs, and passwords for server and client side
2015-12-02 zzz [15:21:22] stuff like disabling the old protocols and ciphers, and doing hostname verification, isn't at all easy or obvious in Java, but it's important. Only got all that right in the last year or so.
2015-12-02 zzz [15:22:27] and bad CAs like eDellRoot... just did that the other day. It never stops.
2015-12-02 +psi [15:23:46] tls and the CAs suck, it's the real house of cards
2015-12-02 zzz [15:25:41] one thing we don't do yet that you might consider is cert pinning for the reseeds
2015-12-02 zzz [15:27:40] but that makes management harder due to renewals and the chance of 'pinning suicide'
2015-12-02 anonimal Yes, only used for reseed.
2015-12-02 anonimal And when I said in the ticket "after that, any use of TLS would be an added bonus and not critical nor a core function of I2P", I included SSL for i2pc*, sam/bob
2015-12-02 anonimal Because frankly, I don't see a need for that.
2015-12-02 anonimal Even though it is implemented elsewhere.
2015-12-02 anonimal Why ssl when an ssh tunnel would suffice
2015-12-02 anonimal And how many app developers really use ssl over those protocols?
2015-12-02 anonimal I can think of setups where it would be useful, but don't forget http://www.danielsen.com/jokes/objecttoaster.txt
2015-12-02 anonimal I need more information though instead of a "just do it". If anyone could help with some perspective, that would be great.
2015-12-02 anonimal What I will do since psi appears to not want to respond to #3 is make a move with openssl and just get this reseed business finished.
2015-12-02 +psi huh?
2015-12-02 * psi reads
2015-12-02 +psi re: reseed str4d suggested that reseed could be done via tor's PT
2015-12-02 str4d anonimal, ssh is only "easy" for more technically-minded people
2015-12-02 str4d whereas ssl is just a checkbox
2015-12-02 anonimal zzz: I forgot to ping you re: perspective
2015-12-03 str4d (although its UX is also not simple right now, but it is much easier to make it so)
2015-12-03 anonimal But can someone give me an example of an app that actually uses ssl?
2015-12-03 anonimal Story of my life http://www.danielsen.com/jokes/objecttoaster.txt
2015-12-03 str4d anonimal_, there's no "app" that uses SSL, because it's not a feature of an app. It's a feature of the library and/or API
2015-12-03 str4d As currently set up, it's up to the user to choose to enable it, because SSL is enabled without changing the port, ie. either all clients use it or none, not both
2015-12-03 &anonimal Yes, SSL incumbent upon the API, but what I'm asking is when is it actually needed outside of reseed.
2015-12-03 &anonimal And the only answers I'm seeing are "user optional".
2015-12-03 &anonimal Its safer to keep everything loopback but yes, at a flexibility cost.
2015-12-03 &anonimal But I'm questioning the tradeoff, and that's why I'd like to see more use cases.
2015-12-03 &anonimal My point: if one is technically minded enough to need to SSL for non-reseed, then they are a stones-throw away from other safer methods.
2015-12-03 &anonimal But if this feature is in huge demand, then I'll proceed in that direction.
2015-12-03 &anonimal (ssl for all)
2015-12-03 zzz anonimal, what str4d said, and also it's not used that often, but perhaps the most likely would be an HTTPS router console, and i2ptunnel server forwarding to a remote web server over SSL
2015-12-03 str4d anonimal, my point is that yes it may be optional, but cutting it out because "you can do ssh" is not IMHO a good answer.
2015-12-03 str4d I don't think SSL for non-reseed mandates being technically minded. It could easily be "The guide I was following recommended it", or just "SSL is enabled by default" in future perhaps
2015-12-03 &anonimal I'm sold on i2ptunnel server forwarding. Everything else had a good point but that was the straw that broke the camel's back.
2015-12-03 &anonimal More importantly, this brings up core kovri questions like: what is kovri's intent and do all of the aforementioned APIs and complexies fit into this router's role?
2015-12-03 &anonimal i2pd is obviously an attempt to clone java i2p, but how is kovri evolving?
2015-12-03 * anonimal open-ended questions
2015-12-03 &anonimal Will kovri eliminate sam/bob/http router console/and more in order to become a easily maintainable, more-likely-to-be-easily-reviewed smaller router that is geared toward a hosting a single i2cp server?
2015-12-03 &anonimal The more I live with this code, the more I realize that most of these kinds of questions were never asked in the first place.
2015-12-03 &anonimal And I don't even think that Linus Torvalds would have been foolish enough to think that a single person could adequately cover so many bases in the earliest version of linux.
2015-12-03 &anonimal And he's linus.
2015-12-03 &anonimal fluffypon: ^
2015-12-03 str4d Thing to remember: SAM and BOB are on the client side of I2CP
2015-12-03 str4d ie the libi2p / libkovri side
2015-12-03 str4d So the kovri router itself could easily just be a small router hosting an I2CP server
2015-12-03 str4d In Java I2P'
2015-12-03 str4d s case, the routerconsole does get access to the router side via RouterContext, but everything else could in theory be run separately
2015-12-03 str4d and the idea of I2PControl is to provide some (if not all) of the functionality that the routerconsole currently gets via RouterContext, so it *could* be implemented separately
2015-12-03 str4d anonimal, this partly falls into the code reorganization stuff
2015-12-03 &anonimal Thanks str4d for the affirmation. I'll need more time to think, but I like this direction.
2015-12-03 str4d It's the reason I2CP was put into the Java router - to create a definite separation of concerns
2015-12-03 str4d And you get the benefit of being able to immediately use any Java I2P app with kovri. Even non-Java apps could be used by running a standalone Java SAM API connecting to the kovri router via I2CP.
2015-12-03 &anonimal Oh, good point, lol. My mistake ;)
2015-12-03 &anonimal Wow, great points to re: apps.
2015-12-03 &anonimal s/to/too/
Note: we would replace router console with an ncurses UI (as proposed pre-Kovri) similar to Tor's arm. Something that can interpret the TMI of our current logger into user-friendly reading.
I believe @fluffypony is already on this. Ticketing for housekeeping.
Brought in up today's meeting (#47), Monero's use of ZeroMQ and Qt.
In #49 I proposed an ncurses GUI. With ZMQ, I believe we could still do that while maintaining a method to interface with Monero's GUI (please correct me if I'm wrong). @majestrate also points out that ZMQ over I2CP is doable (and I think it's interesting).
For all of these issues, I think that a solid abstraction layer to interface with for messaging could be a great solution and we should look into ZMQ (or alternative).
If we ZMQ, how could we integrate #33?
Moved here from TODO.
@majestrate expressed an interest in moving on this. I think its an essential idea but needs more research. See http://www.boost.org/doc/libs/1_59_0/libs/log/doc/html/log/rationale/fork_support.html
Summaries, lengthy prose, visual ASCII examples, diagrams - anything, and as much as possible. Moved here from TODO.
There are ways to do this. Possibly through cmake/make. Review and apply.
See ccd4991
Related to #3.
21:11:20 &anonimal | zzz2: certificates/{router,ssl} are included in our base but are *never* used. What purpose do they have in java i2p?
21:19:38 zzz2 | you don't need router. Those are signing keys for the java update files
21:20:30 zzz2 | the ssl certs are for the reseeds that are self-signed, i.e. don't chain up to a standard CA
21:21:05 zzz2 | either you're wrong about the ssl certs not being used, or you aren't doing any SSL cert checking
21:21:30 zzz2 | or you're failing on all the selfsigned reseed hosts
21:24:39 &anonimal | We only ever use certs in ./reseed.
21:28:36 zzz2 | that would imply that your ssl is fundamentally broken
21:29:01 &anonimal | Abso-fucking-lutely
21:29:19 * | anonimal getting tired of it
21:29:32 &anonimal | As a test: moved ssl certs to reseed, rm -fr netDb,
21:29:40 &anonimal | started kovri: BER decode error
21:29:45 &anonimal | Never makes it to reseed.
21:30:13 zzz2 | you can test by going to a selfsigned reseed site with your browser, you will see the cert error
21:31:02 zzz2 | compared to e.g. the toronotcrypto site, which uses a 'real' cert from a CA
21:31:36 zzz2 | which is why there's no cert for torontocrypto in ssl/
21:31:47 &anonimal | I understand.
21:33:46 zzz2 | more clues why orignal is moving to openssl, I guess
We need better tests - for everything.
Moved here from TODO.
The parser is a disaster. Moved here from TODO.
Certs are essential, they are not optional nor are they "./contrib" worthy (there is nothing else in there anyway). This and many other directory design decisions are currently more confusing than helpful.
We should also do a full review of directory layout.
At least a few appear to throw 404/410. Also see http://trac.i2p2.i2p/ticket/1673
Hi @fluffypony, I'm proposing at least two points of contact:
Edit: Per zzz's advice, I'll be on the mailing list since some of the messages sent are sensitive
Edit: I am currently the point of contact for VRP and we will be working on HackerOne in addition to implementing an official VRP so, once we finalize our stance, this point can be resolved. I'm not against having Monero be the point of contact so long as, within our VRP, we establish mandates for internal correspondence between Monero and VRP team (see https://trac.i2p2.de/ticket/1119).
A bug that prevents tunnel build success? Or a need to provide a profiling mechanism? We need research.
When we get closer to a release, if/when people wish to donate, perhaps we should consider creating a Monero donation address or at least a writeup directing people to donate to Monero. In the future, I also think we should consider allowing personal donations to developers (if that helps to speed up development).
Needs review before bumping. Check for any I2NP/SSU/NTCP implementation discrepancies between Kovri and i2pd-bb and check if anything needs to be implemented if it has not already been done.
Note: I2NP/SSU/NTCP specs have not changed since 0.9.20, so this is all about implementation.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.