Commit Graph

48 Commits

Author SHA1 Message Date
Christian Basler d3205336ed Some tweaks to determine what objects should be requested from other nodes, so they may arrive as quickly as possible. 2016-10-31 06:21:36 +01:00
Christian Basler 489b8968e0 Refactored use of the DefaultMessageListener so it's retrieved from the InternalContext 2016-09-12 08:18:30 +02:00
Christian Basler cd3a801704 Used wrong nonce for version message 2016-08-09 19:50:11 +02:00
Christian Basler 48ff975ffd Better memory management for the in buffer (the same TODO for the out buffer. 2016-07-25 07:52:27 +02:00
Christian Basler ae2120675f Tests with NioNetworkHandler as peer work now 2016-06-18 23:09:23 +02:00
Christian Basler cde4f7b3ce Some refactoring to move some common code into an AbstractConnection 2016-06-01 17:38:49 +02:00
Christian Basler 43f42dd400 This breaks a lot of things, but it seems necessary. Implemented the resending mechanism and fixed many problems on the way, but tests and triggers are still to do. 2016-05-20 07:32:41 +02:00
Christian Basler 678a48ac3f Fixed system test and ProofOfWorkService 2016-05-05 10:50:22 +02:00
Christian Basler 4f7f80c12a Added tests and code improvements 2016-04-08 19:22:40 +02:00
Christian Basler 3e5e431d6f Code cleanup 2016-02-28 23:03:00 +01:00
Christian Basler bc68a5d3ec Code cleanup & improvements
- most notably removed some unnecessary synchronize blocks in the DefaultNetworkHandler
2016-02-26 14:34:08 +01:00
Christian Basler f6add5b2ea Code cleanup 2016-02-25 16:36:43 +01:00
Christian Basler 9f1e0057c9 Code cleanup 2016-02-24 23:10:04 +01:00
Christian Basler 4dd639e651 Code cleanup 2016-02-24 22:51:35 +01:00
Christian Basler 9f05af8bb7 Finally fixed the bug that was haunting me for the last week. 2016-01-21 20:32:23 +01:00
Christian Basler 733335ef42 Improved performance and network stability 2016-01-19 21:09:46 +01:00
Christian Basler 35077243b0 Fixed synchronization 2016-01-17 07:13:29 +01:00
Christian Basler 8764642878 Major fixes and improvements to the network module, fixing problems where objects where requested multiple times or not at all in some situations. 2016-01-16 08:47:50 +01:00
Christian Basler 991a0e5f86 Some improvements for custom message handling 2015-12-02 17:45:50 +01:00
Christian Basler 99266712fa Some extensions for server POW 2015-11-28 20:27:05 +01:00
Christian Basler 1f05a52f05 Improvements
- Massively reduced logging, especially at debug level
- Optimizations to reduce system load
- Use bootstrapping to find stable nodes
2015-11-08 10:14:37 +01:00
Christian Basler c9c0806e0d Attempt to disconnect on thread interrupt 2015-10-29 12:34:29 +01:00
Christian Basler bdc8e025c1 Connections are now severed after a configurable time (12h by default) or when a limit is exceeded (150 by default) 2015-10-24 12:08:23 +02:00
Christian Basler 511b3c1754 Connections now use two separate threads for writing and listening
- this should avoid dead locks, specifically when connecting to Jabit :/
- also, Java 8 features are now allowed in modules not needed by Android clients
2015-10-14 18:37:43 +02:00
Christian Basler ea1419eda1 Synchronisation API - added option to wait for the synchronization to finish 2015-10-08 13:12:39 +02:00
Christian Basler f9ff22bebe Synchronisation API and related refactorings / improvements
-> lets you synchronize with the Bitmessage network without staying connected
2015-10-07 21:50:41 +02:00
Christian Basler 7fb837645f Synchronisation now shouldn't fail if the trusted host has no new messages
- fixed tests for Gradle builds
- fixed SerializationTest
2015-09-25 23:35:31 +02:00
Christian Basler d67c932fb2 Added synchronization code and unit test.
Synchronisation fails if the trusted host has no new messages - this needs to be fixed (but shouldn't be an issue for real world applications)
2015-09-24 08:09:20 +02:00
Christian Basler b8546e28af Moving "Security" to a separate port, so there can be a Bouncycastle and a Spongycastle implementation. (BC doesn't work on Android, SC can't be used on Oracle's JVM) 2015-08-05 19:52:18 +02:00
Christian Basler 7f4c67f43e Removing IV of received objects from requested objects list (I forgot that one) 2015-07-03 07:56:18 +02:00
Christian Basler 2c4d95af2f smarter network code, fixed various issues
- deciding on the stream at creation time is just silly - it should be done based on the identities (this part is TODO)
- changed NodeRegistry so it doesn't store nodes - this should help to connect faster
- inventory items shouldn't be advertised to nodes that are already aware of them (issue #13)
- objects shouldn't be requested more than once (issue #9)
2015-07-01 06:57:30 +02:00
Christian Basler 884171fe18 issue #15: fixed socket timeouts and connection shutdown - no exceptions should be thrown if the network node is being shut down, although it can take up to 5 seconds = max(READ_TIMEOUT, CONNECT_TIMEOUT) 2015-06-24 22:56:17 +02:00
Christian Basler 1dc4582012 Issue # 5: fixed test and initialisation 2015-06-17 06:23:00 +02:00
Christian Basler c0a7acc609 Greatly improved network code - the "manage the node repository" part of issue #5 should now be OK 2015-06-16 06:41:59 +02:00
Christian Basler ed0d1c2911 issue #4: prevent connections to self, select random nodes to connect to 2015-06-13 17:37:55 +02:00
Christian Basler bd5bf76904 Improved connection management, preventing multiple connections to the same node, and improved broadcast handling. 2015-06-12 06:57:20 +02:00
Christian Basler b4683bba68 Broadcasts. Receiving seems to work, but there still seems to be a problem with sending them. 2015-06-09 22:45:24 +02:00
Christian Basler 274c16b748 Implemented sending messages (and fixed a few bugs on the way)
This closes issue #3
2015-05-29 13:17:00 +02:00
Christian Basler 245ca22743 Updated documentation, added German translation 2015-05-24 21:55:37 +02:00
Christian Basler b793526f2f Inventory items are now saved only if processing didn't fail. Receiving messages works, but there seems to be a problem with the POW check in some circumstances. 2015-05-23 10:27:05 +02:00
Christian Basler 1fbc4a1d74 Major refactoring 2015-05-19 19:16:20 +02:00
Christian Basler a65907f13b Some work on addresses and private keys that still doesn't work. As a side effect, sending objects now works basically. 2015-05-01 17:14:43 +02:00
Christian Basler 00bd6a08b7 Added SerializationTest for object payload (which is probably the most important) 2015-04-28 18:36:07 +02:00
Christian Basler f00c6018e7 Some refactoring
- I didn't like the way the context was initialized
- The DatabaseRepository got too complicated
2015-04-24 11:11:08 +02:00
Christian Basler e611e5e20a More or less properly shutdown client / network node 2015-04-17 13:01:46 +02:00
Christian Basler 32de01bbf5 Some basics seem to work now like storing messages, addresses, inventory vectors etc. 2015-04-14 19:47:53 +02:00
Christian Basler 35088ca033 Network code now works well enough for the server to think it successfully established a connection 2015-04-07 18:48:58 +02:00
Christian Basler 3299d8ca4a Networking code, untested 2015-04-06 10:01:03 +02:00