Comments (17)
Here you can find the Bitcoin node source: https://github.com/Tribler/Bitcoin-Regtest-Server
from tribler.
- not really fast start of the project
- Todo BitcoinJ upgrade
- run own node and connect to this one from various emulators
- debug dashboard inside app of connected nodes (simple ping)
from tribler.
- Upgrade bitcoin dependency to latest version
- Understand differences between
mainnet
,testnet
, andregtest
from tribler.
- Upgraded my local git library, and compiled a new app
- Looked at differences between mainnet, testnet and regtest.
- Started my own bitcoin node
- connect multiple devices to this node
- Looked at the dashboard when multiple devices were connected
from tribler.
Worked on getting the regtest node working on my device and getting the getBTC button working (with the major code update). I tried to connect to it from various emulators, but I did not manage to get that working.
from tribler.
-
Worked out how to run the server
-
connected my emulator to the server
-
got the "get bitcoin" button working
-
Exploring the structure and code of the application
from tribler.
- No coordination to collaborate and share workload
- Little coordination meetings to help all team members make progress
- Not on track to pass this course
- Please accelerate
- No FROST deep-dive yet
- No reading of FROST yet
- for next sprint identify vunerabilities
- what can be fixed
- FIX and craft hardened code
- please post issue update
from tribler.
Next sprint:
- Please divide work
- Proposal:
- 2/4 members work on operational bitcoin node:
- Upgrade to latest bitcoinj
- Get working with superapp
- Output: small demo showcasing it works on
testnet
- 2/4 members work on crypto analysis:
- Read frost & musig papers
- Analyse current implementation --> make workflow graphs
- Compile shortcomings of current implementation: what is not safe? how can we improve this? what are bottlenecks crpyto-wise?
- Output: summary of papers, workflows graphs of current implementation, and plan of improvements to current implementation.
- Analyse current design
- 2/4 members work on operational bitcoin node:
from tribler.
Please read the folllowing papers:
from tribler.
- Edited server code & android app code to connect to local BTC node via HTTPS on Regtest
- Reading, understanding & summarizing of FROST
- Read & summarized SPRINT
- Read & summarized "The many faces of Schnorr"
- Identified the flaw of current multi signature scheme implementation (MuSig is n-n so all participants must sign, not ideal for DAO purpose)
- Plan of improvement concerning signature schemes: Implement FROST protocol as it supports t-n (t <= n) signing, it suitable for ROAST and FROSTS's main techniques can be combined with SPRINT to improve robustness & efficiency at a later stage.
- Started with analyzing the current MuSig implementation and how we can replace this with FROST.
- Fixed error occuring when trying to run unit tests
from tribler.
Demo goals:
- Showcase code running on testnet!
- Please upgrade core to version 26: https://github.com/bitcoin/bitcoin
- Make debug screen:
"Get existing code running with 4 laptops with Android emulators or real phones. Add new debug dashboard of connected peers with external IPv4, last-response-time, time-outs, new peers discovered, and alerts for incoming packets."
Demo Pointers:
- Get all peers from coincommunity -->
IPv8Android.getInstance().getOverlay<CoinCommunity>()!!.getPeers()
- Change service ID to only find your own peers for demo purposes
- TIP: use your own tracker and hardcode the IP address in the base
Community
class. - Run own tracker using gradle tasks and hardcode its IP address: https://github.com/Tribler/kotlin-ipv8/blob/476dc36d0a5208d4a6ef21d953e00e4a440046a4/ipv8/src/main/java/nl/tudelft/ipv8/Community.kt#L649
from tribler.
We updated the bitcoin core to run on version 25
We updated the bitcoin configuration file to run the bitcoin daemon on the testnet. We had to debug quite a lot during this process in order to get the testnet working on the server.
We tested the communication between the android application and the server running on testnet. The communication is working, but since we don't have funds on the testnet wallet, we get an error when retrieving BTC.
Updated the readme file for the server to make it more convenient when setting up
Created a new page in app that shows list of connected peers with their external ipv4,last response- & request time
https://github.com/JoepMulder/trustchain-superapp
trying to fix personal problem with communication between core, python server and superapp application
from tribler.
- Try to find a working Testnet Faucet:
- Come up with leader election algorithm:
- Well-known examples: Afek, Yehuda, and Eli Gafni. "Time and message bounds for election in synchronous and asynchronous complete networks." SIAM Journal on Computing 20.2 (1991): 376-394.
- https://itnext.io/lets-implement-a-basic-leader-election-algorithm-using-go-with-rpc-6cd012515358
- Currently, the client proposing a transaction / join is the client responsible for executing the final transaction. This poses a security issue --> use your leader election algorithm to find a client that is responsible for executing the transaction.
- Debug screen:
- Show own IP & PK
- Show PKs of clients
- Show activity:
- Repeated points from last sprint:
- Get all peers from coincommunity -->
IPv8Android.getInstance().getOverlay<CoinCommunity>()!!.getPeers()
- Change service ID to only find your own peers for demo purposes
- TIP: use your own tracker and hardcode the IP address in the base Community class.
- Run own tracker using gradle tasks and hardcode its IP address: https://github.com/Tribler/kotlin-ipv8/blob/476dc36d0a5208d4a6ef21d953e00e4a440046a4/ipv8/src/main/java/nl/tudelft/ipv8/Community.kt#L649
- Get all peers from coincommunity -->
from tribler.
-
Connected to the same DAO with multiple emulators on different devices over internet.
-
Voted in the DAO.
-
Researched and decided on a leader election algorithm.
-
Updated debug dashboard to show own IP & PK, other Peers PK & activity
-
Created flowchart for current DAO joining process
- tesnet faucet (testing and applying changes)
from tribler.
Great progress 🎉
- Continue working on election algorithm:
- Make a flowchart for the election algorithm and start working on some text reporting on your design
- Push server code and make a PR to our repository
from tribler.
-
Added first functionalities for leader election to currencyii.
-
Updated server read.me file with other.
-
Looked into communication through Blockchain and IPv8.
-
Added code to send joinDao payload data via ipv8 to Peer in DAO so peer can retrieve signatures and do the joinDaoTransaction instead of the joiner (Question: How should we handle the case where no single member of the DAO is online).
-
difficulties:
- uncertainty about right commmunication channel.
- push problems with GitHub repository.
from tribler.
Next Sprint:
- Finish flowchart
- Finish connection with app (and TestNet)
- Implement leader election working on purely IPv8
- Make a pull request to the node repository
from tribler.
Related Issues (20)
- Blockchain Engineering - class of 2024 - Team Democracy-3: self-evolving blockchain HOT 22
- Blockchain Engineering - class of 2024 - Team Democracy-1: blockchain networking (a) HOT 24
- Blockchain Engineering - class of 2024 - Team Democracy-1: blockchain networking (b) HOT 18
- Blockchain Engineering - class of 2024 - Team Democracy-4: networking of crypto core HOT 18
- Outdated documentation: `state.rst`
- Fix MacOS build on main branch HOT 1
- Json error HOT 4
- Failed to install `ipv8-rust-tunnels` HOT 1
- Error when updating Tribler saying it contains virus or potentially unwanted software HOT 3
- [7.13.3][IPv8] AttributeError: 'socket' object has no attribute 'is_closing' (in UDPEndpoint.close) HOT 3
- [7.13.2] PermissionError when unlinking processes.sqlite "The process cannot access the file because it is being used by another process" HOT 2
- Please add docker version HOT 2
- [ERROR rust_endpoint] Could not send packet to <IP>:<PORT>: Operation not permitted (os error 1)
- Installation failure of requirements on Python 3.10
- ValueError in `query_http_uri`: Can redirect only to http or https HOT 2
- [7.13.3] CoreCrashedError on Linux with error code 4: Interrupted system call (Unterbrechung während des Betriebssystemaufrufs) HOT 2
- [7.13.3] Some database queries can be very slow HOT 1
- [7.13.3] Investigating reasons for CoreConnectTimeoutError
- Segfault on MacOS on main branch build HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tribler.