-
Notifications
You must be signed in to change notification settings - Fork 34
Changelog Shared
user_name edited this page Feb 28, 2023
·
35 revisions
All notable changes to this module will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Implement SLIP-0010 specification for HD child key derivation
- Cover both Test Vectors 1 and 2 from the specification
- Remove SetLeaderId() method from ConsensusDebugModule interface
- Update logger value references with pointers
- Add file utility functions for checking, reading and writing to files
- Export consensus module's ConsensusDebugModule interface.
- Rename ServiceNode Actor Type Name to Servicer
- Fan-ing out
StateMachineTransitionEventType
event to theP2P
module to handle bootstrapping logic - Refactored single key generation from seed (used in tests) into
GetPrivKeySeed
- Added
UnmarshalText
toEd25519PrivateKey
- Fan-ing out
ConsensusNewHeightEventType
events
- Added events
ConsensusNewHeightEvent
andStateMachineTransitionEvent
- Introduced
BaseInterruptableModule
andIntegratableModule
to reduce repetition and boilerpate code (DRYness) - Added
ModulesRegistry
andStateMachineModule
accessors and interfaces - Introduced generic
ModuleOption
pattern to fine tune modules behaviour - Added
StateMachine
to thenode
initialization
- Added
FetchValidatorPrivateKeys
function since it is going to be used by thedebug-client
and also by the upcomingcluster-manager
#490
- Remove shared
ActorTypes
array and use the enum directly - Reduce the code footprint of the
codec
package & add some TODOs - Added
UnstakingActor
proto to remove deduplication across modules; adding TECHDEBT to remove altogether one day - Added clarifying comments to the utility module interface
- Add
ConsensusStateSync
interface that is implemented by the consensus module
- Added GITHUB_WIKI tags where it was missing
- Address legacy linter errors from
golangci-lint
- Changed log lines to utilize new logger module.
- Added example to Readme how to initiate a logger using new logger module.
- Introduced
GenericFIFOList
to handle generic FIFO mempool lists (can contain duplicates) - Introduced
GenericFIFOSet
to handle generic FIFO mempool sets (items are unique) - Updated
Utility
module interface to expose mempool access viaGetMempool()
- Add
KeyPair
interface - Add logic to create new keypairs, encrypt/armour them and decrypt/unarmour them
- Match naming conventions in
Param
protobuf file
- Add
Param
andFlag
protobufs for use in updating merkle tree
- Add
ConsensusPacemaker
interface that is implemented by the consensus module
- Remove
address []byte
argument fromInsertPool
function inPostgresRWContext
- Rewrite
interface{}
toany
- Create
block.proto
which consolidates the definition of aBlock
protobuf undershared/core/types
- Deprecated
GetBlocksPerSession()
andGetServicersPerSessionAt()
in favour of the more general parameter getter functionGetParameter()
- Make the events channel hold pointers rather than copies of the message
- Updated modules constructor to accept a
bus
and not aruntimeMgr
anymore - Registering modules with the
bus
viaRegisterModule
method
- Removed
ValidatorMap() ValidatorMap
fromConsensusModule
interface - Added
GetIsClientOnly()
toP2PConfig
- Added
PoolNames.FriendlyName
method - Renamed enums as per code-review
- Updated
InitParams
logic to use genesisState instead of hardcoded values
- Updated to use the new centralized config and genesis handling
- Created
Actor
struct undercoreTypes
- Created
Account
struct undercoreTypes
- Created
PoolNames
enum undercoreTypes
- Updated module to use the new
coreTypes
- Simplified
*Module
interfaces - Updated tests and mocks
- Added
GetMaxMempoolCount
- Change the
bus
to be a pointer receiver rather than a value receiver in all the functions it implements
Debug:
-
ResetToGenesis
- Added the ability to reset the state to genesis -
ClearState
- Added the ability to clear the state completely (height 0 without genesis data)
Configs:
- Updated the test generator to produce deterministic keys
- Added
trees_store_dir
to persistence configs - Updated
LocalNet
configs to have an emptytx_indexer_path
andtrees_store_dir
#353 Remove topic from messaging
- Removed topic from messaging
- Added
PocketEnvelope
as a general purpose wrapper for messages/events - Added utility methods to
Pack
andUnpack
messages - Replaced the switch cases, interfaces accordingly
#235 Config and genesis handling
- Updated to use
RuntimeMgr
, available viaGetRuntimeMgr()
- Segregate interfaces (eg:
GenesisDependentModule
,P2PAddressableModule
, etc) - Updated tests and mocks
- Used proper
TODO/INVESTIGATE/DISCUSS
convention across package - Moved TxIndexer Package to Utility to properly encapsulate
- Add unit test for
SharedCodec()
- Added
TestProtoStructure
for testing - Flaky tests troubleshooting - https://github.com/pokt-network/pocket/issues/192
- More context here as well: https://github.com/pokt-network/pocket/pull/198
#198 Flaky tests
- Time mocking abilities via https://github.com/benbjohnson/clock and simple utility wrappers
- Race conditions and concurrency fixes via sync.Mutex
#163 Minimization
- Moved all shared structures out of the shared module
- Moved structure responsibility of config and genesis to the respective modules
- Shared interfaces and general 'base' configuration located here
- Moved make client code to 'debug' to clarify that the event distribution is for the temporary local net
- Left multiple
TODO
for remaining code in test_artifacts to think on removal of shared testing code
Contents
- Home
- Persistence
- Changelog
-
Persistence
- Indexer
- Rpc
- Runtime
- State_Machine
-
Guides
- Roadmap
-
Guides
- Learning
- Guides
-
Guides
- Contributing
- Devlog
-
Guides
- Dependencies
-
Guides
- Releases
- Guides
- P2P
-
Shared
- Crypto
- Shared
-
Shared
- Modules
-
Build
- Config
- Consensus
-
Guides
- Telemetry
- Utility
- Logger