Tribler / tribler

Privacy enhanced BitTorrent client with P2P content discovery
https://www.tribler.org
GNU General Public License v3.0
4.86k stars 451 forks source link

Blockchain Engineering - class of 2024 - Team Democracy-4: networking of crypto core #7914

Closed synctext closed 3 months ago

synctext commented 9 months ago

Project assignment for Delft University of Technology master course called "Blockchain Engineering". Custom assignment: combining Democracy-1 and Democracy-2 (overlap == networking part of crypto core)

Task You have completed this course successfully if you can scale the "networking part of crypto core" to 100 emulators/peers. Bonus goal is 500 peers! (ultimate goal is seriously let this scale to the 15 million users on WallStreetBets at Reddit).

Blockchain networking part @mateichirita

Crypto Core Part

BONUS: Networking dashboard. Improve activity grid principle of status of each of the 25 connected IPv8 peers. image

synctext commented 9 months ago

Minimal sprint goal: all your laptops inside 1 IPv8 community x 4 (start multiple IPv8 client). try to do also crypto stuff, not just sockets.

Kheoss commented 9 months ago

Demo Week 4: image

InvictusRMC commented 9 months ago

Pointers for next week:

{added} Demo: Regtest block download operational. Get BTC inside superapp needs to work, reproduce stand-alone cmdline. Empty wallet means error creating DAO

Kheoss commented 8 months ago

12-03-2024 update:

MichallHuTuDelft commented 8 months ago

Cleaning up the github repository

mateichirita commented 8 months ago

12-03-2024 node.js server to trigger events on instances: Screenshot from 2024-03-12 11-27-59

mateichirita commented 8 months ago

This sprint's update:

image

Kheoss commented 8 months ago

We are also working on the removal of the single coordinator from signature collection process, by removing the blocking while loop that waits for signatures on the client side with a new event based system: image

Future plans

synctext commented 8 months ago
Kheoss commented 8 months ago

Progress check 25-03-2024

InvictusRMC commented 8 months ago

Solid progress last sprint! 🎉

Kheoss commented 8 months ago

Progress check week 8:

Short description: Focus on testing multiple techniques to achieve an increase in speed and/or number of connecting peers. Detected possible improvements regarding the networking on trustchain ( preliminary results below )

Findings:

Results (charts below: X-axis=number of peers, Y-axis=bandwidth usage in KB/ milliseconds): As expected the bandwidth usage of the gossip mechanism is drastically lower than the current approach. The current algorithm for 15 peers peaked at around 1.2MB of band usage, which is a lot compared to only 228KB used by the gossip.

Unexpectedly, for low number of peers the gossip algorithm performed better speed-wise. This result can be interpreted in two ways:

Chart_Bandwidth Chart_Speed

Future improvements proposal:

GIT: https://github.com/Kheoss/CSE4110_jre

synctext commented 8 months ago
Kheoss commented 7 months ago

Update 12/04/2024

Current setup:

Observation: Slow discovery, takes a while for each peer to discover other peers. Performance increase on windows OS (?)

synctext commented 7 months ago

Grading session --- 26/04

Kheoss commented 7 months ago

Progress check 19-04-2024

InvictusRMC commented 7 months ago

Final notes

Kheoss commented 7 months ago

readme :https://github.com/Kheoss/trustchain-jvm-sandbox/blob/2244cd7a959a0046e33c68e4c77db8fa018ca22e/README.md

Fork: https://github.com/Kheoss/trustchain-superapp/tree/jvm_compatible_sandbox