sequin v1.12.0
Getting Started
To get started create a new application on balena-cloud.com and balena push
this source code to it.
Environment variables
Name | Description |
---|---|
WALLET_SEED |
String used to generate a server side wallet, which is used to sign transactions and for allocating mining rewards |
PASSWORD |
String used to authenticate with the server when creating transactions |
Development
To get started, set up a balena device in local mode and use balena push
. This will run a docker container on the device that executes the test suite, then sleeps. Saving changes to the project will cause the test suite to be executed again.
Tests
To run unit tests locally:
make test
Linting uses the GitHub super-linter project and can be run locally using docker with:
make lint
Todo
Testing
Blockchain
- Handle forks
Wallet
- Wallet mnemonic seed
- HD wallet
- Ability to create multiple wallets
Transactions
- Move to candidate block coinbase/generation transactions
- Refactor to use UTXO and input/output transactions
User interface
- Login using JWT
- Wallet generation (linked to mnemonic seed?)
Rest API
- Basic Auth
- POST transaction
- GET balance
- GET blockchain
- GET transaction
- Multi user auth via "login with GitHub" https://levelup.gitconnected.com/how-to-implement-login-with-github-in-a-react-app-bd3d704c64fc
Mining
- Set mining reward adress
Hardware
- Control inkyshot screen
Decentralization
- Download Chain on startup
- Persistent on-node blockchain storage
- Compressed storage format for blockchain
- Node discovery
- Open app on balena
- Consensus
- Broadcast newly mined blocks
- Verify received block
- Stop mining upon receiving valid block
- Propagate block to peers
- Remove conflicting transactions
Features
- Security hardening
- Lottery
- Coin burn (ala pancakeswap)
Repository
sequin
Owner
Statistic
- 2
- 1
- 0
- 0
- 3
- almost 4 years ago
- February 21, 2021
License
Links
Synced at
Sun, 22 Dec 2024 10:08:08 GMT
Languages