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