All notable changes to this project will be documented in this file.
Unreleased v0.1.0
- restructurize
- update dependencies
- chain utils can parse private key string
- Dependabot to weekly frequency checks
- Prepare dgraph driver
- Prepare API Handler interface
- Updated uber zap logger dependency version
- Basic dockerfile
- GitHub actions Go fmt and vet checks (tests would be added as better design appears)
- new p2p handling templates based on Etherium
p2p
- gRPC and protobuf usage
proto
package renamed and moved tonode/pb
.scripts/genproto.sh
fixed as well
- Downgrade go-multiaddr and libp2p-go-core libs, due runtime error
- libp2p usage, there is etherium library, simply working right up here. What did I even tried to do?
- legacy
etcd/raft
import
- basic p2p host usage and connection
- close topic, dht and subs on graceful shutdown
- libp2p usage
- pb files regenerated without gRPC server, probably should be removed
- grpc server usage
- Reward transactions handle
traceutil
package parent context option wrapper func
- sync known peers (to be tested)
- prefixes for all kv database keys in BlockChain, also added wrapper functions
- wallets manager address existsing method
- wallet lock status method which returns "Un/Locked" string
- Added Contributing guide
- I have lost a lot of time at trying to implement common database interface, only after lot of spent time I get that it is not even good fits the idea of separate interfaces and storages. It would be described in further docs: this chain would be as disturbed, as you do not need to have the whole chain backup. Only the data compared with your node and accounts registered at network.
- Use receipts as transaction applied return result
- node blockchain state run does not load genesis now
- peer removes itself from mem cache discovery
- gRPC client moved to separate
client
package β probably would be renamed and/or moved - Denomination for RNT renamed to Coin and would be used as Rovergulf Coins
- Transaction fee calculation
- Block and Balance structs moved to
core/types
package
- more
params
package constants, to be used in network consensus verification and other places where constant values are important
- Chain Genesis initialization now have hardcoded default values
core
logic now separated from its types, as it would represent database interface of blockchain- some of
core
package used types now moved totypes
subdirectory package - No etherium Gas naming, use Nether as the lowest denomination of Rovergulf Native Token
address
flag usage for cli application would be optimized
node-id
flag usage
- node account dump command
- transaction signer verification
- Genesis initialization
- legacy sync methods
- provide address on node run, to switch node used account
- balance database saving
- PoW usage
- node stop CLI command
- get account key handler
- sign transactions with open wallet
- node currently asks for account passphrase to run (behavior should be updated)
- Genesis db encoding - removed
Transaction.MarshalJSON
method
- Added get block http handler
- gRPC node connection interface instead custom TCP
- genproto.sh script to generate rpc command
- some gRPC handlers
- change account auth phrase
- wallets creation use mnemonic passphrase by
--mnemonic
flag value now, which is true by default.
- Genesis initialization from file
- Updated transaction signing using etherium SDK
- Use Ether-like wallet balance design instead Bitcoin UTXO
Wallets
now areManager
repo
package moved todatabase/badgerdb
to prepare multiple database backend interface
- Prepare genesis from file
tx get --id $TRANSACTION_ID
command
- Prepared node multiple network interfaces
- etherium-go SDK wallet
common.Address
support
accounts
package moved towallets
- Send command public key length
- Get wallet balance
- List balances command output
- CLI backup and balances commands templates
- Prepared Node and PeerNode structs to handle network
config
package containing common options
- Updated CLI usage
- Badger DB setup moved to separate package
- Bitcoin base58 encoded wallet address support
- TODO: change to etherium based address using
secp256k1
node
package to handle blockchain peers
- blockchain init/continue handlers
- UTXO set
accounts
package to handle wallet addresses- base58 encoding (temporarily to supply bitcoin like address)
- updated transactions
- use badger db instead bbolt
- core transactions handling
- Basic blockchain prototype
- bbolt db storage