mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
67 lines
1.9 KiB
Markdown
67 lines
1.9 KiB
Markdown
# DLT-Connector Overview
|
|
|
|
What the DLT Connector does roughly.
|
|
|
|
- create transaction
|
|
- receive transactions from iota
|
|
- warmup, load missing transactions from iota on startup
|
|
|
|
## create transaction
|
|
- called from backend with transaction details
|
|
- sender user | signing user (in case of contribution)
|
|
- uuid
|
|
- account nr | default = 1
|
|
- community uuid
|
|
- recipient user
|
|
- uuid
|
|
- account nr | default = 1
|
|
- community uuid
|
|
- amount
|
|
- memo
|
|
- type
|
|
- createdAt
|
|
- load or create accounts
|
|
- compose protobuf transaction
|
|
- derive correct private key for signing account and sign transaction
|
|
- validate transaction
|
|
- write transaction into transaction_recipes table
|
|
- send transaction to iota
|
|
- update iota message id in transaction_recipes table
|
|
- return to backend with iota message id
|
|
|
|
|
|
## receive transactions from iota
|
|
- listen on all registered community topics on iota
|
|
- make sure we have everything from milestone
|
|
- sort per community by iota milestone, createdAt ASC
|
|
- per message:
|
|
- deserialize to protobuf object
|
|
- validate
|
|
- if valid:
|
|
- calculate running_hash and account_balance
|
|
- write into confirmed_transactions
|
|
- if invalid:
|
|
- write into invalid_transactions
|
|
- send request to backend with final transaction data for comparison
|
|
- sender user | signing user (in case of contribution)
|
|
- uuid
|
|
- account nr
|
|
- community uuid
|
|
- recipient user
|
|
- uuid
|
|
- account nr
|
|
- community uuid
|
|
- amount
|
|
- memo
|
|
- createdAt
|
|
- confirmedAt
|
|
- type
|
|
- iota message id
|
|
- balance for createdAt
|
|
- decay for createdAt
|
|
|
|
## warmup, load missing transactions from iota or Chronicle on startup
|
|
- read all iota message ids from all registered topics
|
|
- check if already exist
|
|
- load details for not existing message ids
|
|
- do for every message [receive](#receive-transactions-from-iota) |