Skip to content
This repository has been archived by the owner on Sep 1, 2022. It is now read-only.

Remove hard-coded IRC and eepsite tunnels #107

Closed
EinMByte opened this issue Feb 2, 2016 · 3 comments
Closed

Remove hard-coded IRC and eepsite tunnels #107

EinMByte opened this issue Feb 2, 2016 · 3 comments

Comments

@EinMByte
Copy link
Contributor

EinMByte commented Feb 2, 2016

I propose removing the hard-coded tunnels. The tunnels can still be in the default tunnels.cfg file.

For end-users, the only practical consequence would be that you can't set the options for these tunnels from the command line.

@anonimal
Copy link
Collaborator

anonimal commented Feb 2, 2016

I agree with the 1st half, but this should also be kept in mind during removal:

2016-02-02 19:50:56     &anonimal       I agree with #107, but this brings up something I forgot I wanted to bring up a while ago:
2016-02-02 19:51:27     &anonimal       I'd like to be able to run Nth amount of kovris on one machine.
2016-02-02 19:51:46     &anonimal       This is something we could easily do where java i2p cannot easily do (AFAICT).
2016-02-02 19:52:03     +EinMByte       anonimal: That requires getting rid of the singleton design
2016-02-02 19:52:16     +EinMByte       Which starts with what I'm doing right now
2016-02-02 19:52:19     &anonimal       Good, I don't think *anyone* here liked the idea to begin with.
2016-02-02 19:52:47     +EinMByte       BUT, it would already be possible to run multiple ClientContext objects over a single router when I'm done
2016-02-02 19:53:06     &anonimal       So, with the "Nth Kovri" design of CLI/Config handling, I think we should take a certain independence into account.
2016-02-02 19:53:23     &anonimal       Hmm.
2016-02-02 19:53:44     +EinMByte       Ideally I'd like to see something like Router myRouter(some args);
2016-02-02 19:54:01     +EinMByte       and then do stuff with that object, possible have multiple such objects
2016-02-02 19:54:05     &anonimal       So Nth routers, different ports each, etc.
2016-02-02 19:54:09     +EinMByte       s/possible/possibly

@EinMByte In short, I think we should still consider end-user usability in addition to proposed API. I know this creates more hurdles since core won't know what its in client, but I wonder if we can keep our present CLI aesthetics (we can throw out how it maps) while continuing our new design work. Either way, sounds exciting 😄

This ticket also relates to #34 and #96.

@EinMByte
Copy link
Contributor Author

EinMByte commented Feb 3, 2016

I'm going to go ahead and do this.

@anonimal
Copy link
Collaborator

anonimal commented Feb 3, 2016

Cross-posting JFTR:

2016-02-03 11:17:24     +EinMByte       I'm about to do #107, since anonimal seemed to agree
2016-02-03 11:17:55     +EinMByte       I'll make sure the tunnels still exist in tunnels.cfg
2016-02-03 11:18:05     +EinMByte       just not in kovri.conf
2016-02-03 11:22:42     +EinMByte       By the way, client/core is split up 
2016-02-03 11:22:47     +EinMByte       We still need to provide an easy "Api.h" or something, because now you'd have to include a lot of files
2016-02-03 11:22:47     +EinMByte       It would be nice if one header file would be enough
2016-02-03 11:28:36     +EinMByte       I'll probably write a "tutorial" on how to bundle i2pd when that's done
2016-02-03 11:29:05     +EinMByte       (in the hope that it will be useful for monero developers)
2016-02-03 12:57:38     &anonimal       EinMByte: I only partially agreed, please read again. A complete killing of CLI for tunnels is not a solution, IMHO, unless it replaced with a better option at it kills usability for the Nth router problem.
2016-02-03 12:58:28     &anonimal       I think we can put our heads together to find an agreeable solution, or maybe you already have better ideas and haven't responded in the ticket.
2016-02-03 12:58:53     +EinMByte       anonimal: Well I removed the options in my fork.
2016-02-03 12:59:38     +EinMByte       I'm not sure if people actually build tunnels from the CLI
2016-02-03 13:00:54     &anonimal       EinMByte: Re: cli tunnels, how do you propose we handle the Nth router problem without having numerous config files everywhere?
2016-02-03 13:02:30     +EinMByte       not sure how that's related to CLI tunnels. The configuration file is an application thing
2016-02-03 13:03:05     +EinMByte       (as are CLI tunnels)
2016-02-03 13:03:13     +EinMByte       Nth router is a core thing
2016-02-03 13:03:30     +EinMByte       Maybe kovri-main won't support multirouter
2016-02-03 13:04:15     +EinMByte       If it does, we need an overhaul of the whole configuration and CLI thing
2016-02-03 13:05:32     &anonimal       That's my point. Flexibility could be a hallmark feature of kovri vs. other implementations.
2016-02-03 13:05:38     +EinMByte       Since, as you've said, each router needs its own configuration
2016-02-03 13:05:58     +EinMByte       (or you could run multiple routers with the same config?)
2016-02-03 13:05:59     &anonimal       And doing overhaul now could be better in the long run, IMHO.
2016-02-03 13:06:29      *      anonimal thinks
2016-02-03 13:07:21     &anonimal       Re: all w/same config: if they all point to the same ~/.kovri then I don't think that would work (netdb, etc.)
2016-02-03 13:07:59     +EinMByte       Well, for netdb you need a different folter for each router of course
2016-02-03 13:08:04     +EinMByte       *folder
2016-02-03 13:09:07     +EinMByte       Otherwise you'll always get major problems
2016-02-03 13:10:04     &anonimal       Keeping track of which router gets which netdb sounds weird.
2016-02-03 13:10:21      *      anonimal thinking
2016-02-03 13:10:29      *      anonimal and doing other things ATM
2016-02-03 13:10:57     +EinMByte       anonimal: Well, you just pass a different data directory
2016-02-03 13:23:03     &anonimal       EinMByte: Re: data dir, ok, but not my ideal solution. As long as we keep things moving, sounds good enough for now.

anonimal added a commit that referenced this issue Feb 7, 2016
0bff9a2 Cleanup (following cpplint advice) (EinMByte)
4bbe89d Resolve #107. (EinMByte)
43f14e1 Move config file constants to Config.h. (EinMByte)
2f39034 Separated libcore, libclient and kovri application (issue #98) (EinMByte)
6efa143 Move Daemon to kovri-main. (EinMByte)
e0f9c73 Merge libclient and libapi. (EinMByte)
anonimal added a commit that referenced this issue Feb 7, 2016
8999af5 Reseed: improve non-standard ports patch (581dd9e) (anonimal)
581dd9e Reseed: fix bug for servers with non-standard ports. (anonimal)
8eb187f CMake: update OSX OpenSSL. (anonimal)
0958052 Minor ammendments to reflect new lib organization. (anonimal)
cf48ea0 Fix build, forgot to include crypto/Rand.h (EinMByte)
a5de2d6 Fix bitmask used to select SSU fragment size (thanks orignal). (EinMByte)
1dcbe27 Fill padding with random bytes in NTCP (thanks psi). (EinMByte)
d23138d Add bounds check to SU3 fileNameLength (thanks psi). (EinMByte)
0bff9a2 Cleanup (following cpplint advice) (EinMByte)
4bbe89d Resolve #107. (EinMByte)
43f14e1 Move config file constants to Config.h. (EinMByte)
2f39034 Separated libcore, libclient and kovri application (issue #98) (EinMByte)
6efa143 Move Daemon to kovri-main. (EinMByte)
e0f9c73 Merge libclient and libapi. (EinMByte)
anonimal added a commit that referenced this issue Feb 17, 2016
51dcb23 License/Docs: implement 0MQ 22/C4.1 + revise docs. (anonimal)
5dc950f License/Docs: minor revisions to license. (anonimal)
fd859a7 Crypto: update RandInRange() backend + unit-test. (anonimal)
9c330cb Crypto: create true RandInRange(). Fixes #130. (anonimal)
de59b56 Config: implement single-switch opts, refactor. (anonimal)
06cd79b Reseed: update server list + certificates. (anonimal)
e6e8b15 Refactor: resolve all using-directive TODO's. (anonimal)
5153a94 I2NP/NetDb: move NETWORK_ID to Version.h (anonimal)
037e4f6 I2NP: fix tunnel build request raw memory leak. (anonimal)
456a14d NTCPSession: fix Phase2 raw memory leak. Refs #65. (anonimal)
eb6d2e6 NTCPSession: refactor datatypes + identifiers. (anonimal)
5d64e62 NTCPSession: resolve a refactor TODO. (anonimal)
8999af5 Reseed: improve non-standard ports patch (581dd9e) (anonimal)
581dd9e Reseed: fix bug for servers with non-standard ports. (anonimal)
8eb187f CMake: update OSX OpenSSL. (anonimal)
0958052 Minor ammendments to reflect new lib organization. (anonimal)
cf48ea0 Fix build, forgot to include crypto/Rand.h (EinMByte)
a5de2d6 Fix bitmask used to select SSU fragment size (thanks orignal). (EinMByte)
1dcbe27 Fill padding with random bytes in NTCP (thanks psi). (EinMByte)
d23138d Add bounds check to SU3 fileNameLength (thanks psi). (EinMByte)
2dc4d74 Fix typo in ElGamal.cpp. (EinMByte)
20859e6 Review PR #112 (resolves #114). (EinMByte)
0bff9a2 Cleanup (following cpplint advice) (EinMByte)
aeca942 Clean up comments in DSA and ElGamal unit tests. (EinMByte)
1e457f3 Rename crypto unit test files for consistency. (EinMByte)
7c5315f add copyright (Jeff Becker)
9e70f59 fix up elg tests (Jeff Becker)
3c0bca4 use main prng in Elgamal Key Generation (Jeff Becker)
d4ffd85 add elg tests and fix up dsa tests (Jeff Becker)
748ec5b fix up elgamal, add bounds check and zero pad check (Jeff Becker)
43f582f add dsa tests (Jeff Becker)
6298dfb make it compile (Jeff Becker)
79620dc reorganize existing crypto unit tests into their own files (Jeff Becker)
5792af6 Fix #109. (EinMByte)
193c3f4 remove OpenSSL link instructions from building.md (Riccardo Spagni)
1f8d3f0 find installed OpenSSL on OS X (Riccardo Spagni)
835cfea Update MacOSX build requirements. Resolves #37. (anonimal)
4bbe89d Resolve #107. (EinMByte)
43f14e1 Move config file constants to Config.h. (EinMByte)
2f39034 Separated libcore, libclient and kovri application (issue #98) (EinMByte)
6efa143 Move Daemon to kovri-main. (EinMByte)
e0f9c73 Merge libclient and libapi. (EinMByte)
d2c0908 Remove coreVersion + stat_uptime. Bump to 0.9.24. (anonimal)
9a14807 Remove redundant #pragma once in Daemon.h. (EinMByte)
76c1cf2 Fix race condition in Transports.cpp. (EinMByte)
9afe4bd Add core/util/Log.h to Daemon.cpp. Fixes #85. (anonimal)
e330dcd don't send ssu packets if they are too big (also covers underflow of size_t which in this case made kovri segfault last night) (Jeff Becker)
24e9b71 fix #85 (Jeff Becker)
53c9867 Huge cleanup of logging implementation. (anonimal)
ab6fae4 Cherry-pick remaining doc/crypto commits from #81 (anonimal)
47223f8 Cherry-pick commits from #81. (anonimal)
661b002 Revert #81 before cherry-picking. (anonimal)
c45f521 fix up i2lua to conform to style guide better (Jeff Becker)
b4f94eb check for dsax >= dsaq (Jeff Becker)
8e77042 (probably) fixed issue with CryptoPP exceptions (Jeff Becker)
e768333 * add documentation strings * add i2p::Buffer for pre filled buffers * various changes to unfux crypto parts (Jeff Becker)
803c799 fix up lua parts, implement i2lua.GetRouterByHash (Jeff Becker)
ede65b2 remove linting related things (Jeff Becker)
88da250 more indentation fixups (Jeff Becker)
14cf9aa more style fixups (Jeff Becker)
3829173 linting (Jeff Becker)
15594e4 Update .codedocs + .gitignore. (anonimal)
b567bba Add .codedocs file and CodeDocs badge to README.md (Paul Novotny)
5889c60 if not logging still start daemon (Jeff Becker)
502d187 fix up PRNG bits (Jeff Becker)
d4e577b add linting helper tools (Jeff Becker)
60173bf Massive refactor of #72. Update style guidelines. (anonimal)
9eae20b we don't need a dummy rng for eddsa anymore (Jeff Becker)
5f473be * use function pointers and NOT std::function in benchmarks as doing so crashes benchmarks occasionally (Jeff Becker)
94ea36f add i2lua documentation (Jeff Becker)
88a511e fix boost::log link error (Jeff Becker)
8605937 * make lua interpreter actually work (Jeff Becker)
243c898 add initial boilerplate for lua interpreter (jeff)
51d9a21 fix benchmarks (jeff)
a8b2b44 fix typo (jeff)
26a4482 compiles and links but untested refactor of all parts using CryptoPP's PRNG to use i2p::crypto::Rand* functions which wrap CryptoPP's PRNG such that it can be swapped out with relative ease if needed. (jeff)
39b513a fix i2pcontrol crash (jeff)
2429f3a add tunnels.cfg reload (jeff)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants