TODO
In Progress
DART Synchronization services (mode2)
Description: Function to allow a program to remotely synchronize a dart from a node
Goal: May
- Synchronize a static remote DART to a local DART
- Synchronize more static DART's with the same data to one local DART
- Subscribe to a recorder from one trusted node.
- Iterate until until the DART has been synchronize to the common bullseye
Assignee: al
Graph Mirroring (mode2)
Description: create a function can get all new events using wavefront and create a non voting graph of the events
Goal: May
Enable a new node to join the graph
- Enable a node to follow the graph and build the consensus with out participating
- Add graph witness fingerprints to the DART
- Bootstrap the graph with the witness events from the dart
- Create a test that the events are properly mirrored and voted
Assignee: lr
Network Catchup (mode2)
Goal: May
depends on: DART Synchronization services & Graph Mirroring
- integrate in tagionwave, start the network and sync until it can join the network when the node starts it should detect that it is out of sync and start mirroring the graph and syncing the dart
- bdd which checks that a node can catch up and switch from offline to online
Assignee: lr, al
TVM Util
Description: A tool which can execute a contract with wasm instructions against a local DART
Goal: May
- Simple instructions (WASM)
- Block jump instructions.
- Memory instructions.
Assignee: cbr
TIP6
Description: docs.tagion.org/tips/6
Goal: May
- add hash of executed contract to recorderchain
- add hash of recorderblock to epochchain
Assignee: lr
Service refactor
- Refactor collector to uses concurrency fibers instead of using state map for each incoming contract
- Create epoch commit service to have more control over how recorders and fingerprints are redistributed
`And remove responibillity from transcript and dart service - Fix some instability in replicator read test
- Pass addressbook to individual services instead of using static global addressbook
- Create mode0 nodeinterface service Assignee: lr
Backlog
Remove DARTFile.search
- Remove the search function from dart and rewrite unittest that depend on it
Timezone override
- Reimplemnt the toISOExtString from phobos without the LocalTime check the removes timezones
- Create bug report for phobos when converting back and forth between unwhole timezones
Active Nodes record
- Create a record that is updated by transcript with the pubkeys of all the active nodes
- Remove state info from NNR records
Boot issue
- Fix issue where if an external dart request is sent on a slow machine before the transcript reads the head request it can timeout and the system will be stuck in a none starting state.
Separate HashNet and SecureNet
Description: prepare to be able to use alternate hashing algorithm (ie. blake3)
- Make hashnet and securenet separate classes
Network Joining and participation (Mode2)
Goal: Q3
- make sure that the newly joined nodes can add events to the graph
- detect that the nodes votes is a part of deciding witnesses
- when this is detected allow the node to update the database (producing epochs)
Shell Cleanup
Goal: Q2
- Fix memory leak
- Move everything that is not related a part of the core functionality to a separate module (forwarding rpc, caching)
- Find out why request often end in htp 405,503,502,504
Deployment testing
Goal: May
- Backup the production dart to an external
- Test if the production network can run on the current code for 4 weeks in mode0
Distributed testing
Description: We want the infrastruct to be able to test new version of the network in a distributed manner
Goal: Q2
- Create a service were people can associate their public key with a machine
- Create a tool were we can assign specific docker images to a group of public keys and assigns network boot data to that group
- Create a deployment/tutorial were people can setup a node and automatically updates to newly assigned images.
TVM Service
Goal: Q2
- Add wasm execute to tvm service
- The tvm service should execute wasm script that are loaded from the dart.
- The entrypoint function
run()
? should always take the inputs, reads and outputs
Assignee: cbr
Epoch MuSig:
Description:
Goal: Q3
- [/] implement Schnoor MuSig
- Make sure that multi user signatures don't leak private keys.
- Replace signatures in epoch chain with aggregated MuSig
Assignee: cbr
DART Blake3
Goal: Q2
- Write a TIP proposal for how to migrate and explaining the motivation
- add blake3 hashing algorithm
- create a translation table for old dartreads
Protocol violations
- Add proper error handling for nodeinterface when the response is larger than the allowed
- Limit the request response size from the wavefront
Logger topics
- Be able to toggle the event logger topics without restarting tagionwave.
Subscription API implementation
Description: Provide external API for subscribing and querying data in the system as in Subscription API proposal Labels: [Tracing]
Envelope communication
- [ ]: Discuss Envelope spec. Current spec is not compatible tagion.crypto.Cipher. Does it really need a length field when hibon already has one. Encodes compression level but this is already encoded in zlib header
- [ ]: Create functionalitiy in wallet to serialize to Envelope.
- [ ]: Create functionality for shell to accept Envelope.
HiBON Document max-size check test
Description: We should make sure that we have check for max-size/out-of-memory For all external Documents Like the inputvalidator...
Update recorderchain documentation
Description: the current recorderchain tool documentation is for a previous version of the tool
- Add documentation for how to use the new tool
- Pick one tool, either kette or vergangenheit and make sure there is feature parity
Done
Hashgraph monitor updates
- Remove old events that are older than X round received.
- Document the hashgraph monitor widget.
docs/tech/gui-tools/hashgraph_viewer.md
Assignee: yr
Add background task to the collider
Collider should be extended to be able to start background process.
- Add timeout to the test task.
- Add task dependency between the tasks.
-
Add backout task which can be used by other tests.
Assignee: cr
Telegram wavefront
- Logger checker via
Telegram.slack
Network Name record
- Connect the nodes via the Name records.
Assignee: lr
NNG BDD
Description: Move the NNG-test to the collider BDD test-frame work
- The current test program will be executed directly via a bdd test
Assignee: yr
Tauon was test build fails
Description: Linking of wasm tauon test file fails after 91fd2e09c560530a8ffd19292e82dedc1b5e2d08 or 4999f813071e64f8eda78e98e3b649958f5b52bf because of missing _start function. I've tried reverting both commits individually but it didn't change anything. Also they both seem unrelated.
God-contract
Setup contract which can directly delete and write to the database This function will be used in the testnet only.
- Implement a contract which can call a dartModify on the DART
Assignee: cr
Types filtering in hirep
Description: hirep have --types arg, but it's not implemented yet.
- - Implement --type filtering in hirep.
- - Write bdd test for this feature
Assignee: ib
Gitlab ci trigger
Make a script to trigger the gitlab app ci when the native mobile libraries have been built
Assignee: lr
DART dry run function
A function which calculates the bullseye on a recorder
- Implement in a unittest
Assignee: pr
Tagion API library
- Create document API
- create HiBON api
- create wallet api
Hashgraph Consensus bug
Description: After very many epochs a consensus bug is incurred where the epochs are not the same. One node gets behind and seems to stop communcating for a period of time.
- Create callback array and reassign pointer on fiber switch
- Show all errors for multi-view. (having problems with this)
- Create Event overload (CBR)
NNG test flow
Description: Extend the CI-pipeline for github.com/tagion/nng to automatically build and execute tests
Assignee: yr
Fix Mode1 test
Description: Mode1 test doesn't work with other than 5 nodes
Assignee: lr
C-api fixes
- check error text is set
- [ ] check rt_init exported functions on androidThis is insignifant and we decided not to spend time on this now. Currently just use start_rt - add hibon override/delete key functions
Assignee: lr
Merge wavefront
Description: Merge the changes to the hashgraph with changes to the wavefront and ensure that all tests pass.
Assignee: lr, cbr