v1.1.0
v1.1.0
changelog:
- adds a secure identity layer supported by ECDSA signatures
- each node stores a private / public key pair, and node RIDs now derive from their hashed public key
- both requests and responses are enclosed in signed "envelopes"
- envelopes are JSON objects which wrap existing payloads, adding additional fields for the source node, the target node, and a signature (signed by source node)
- restructuring of codebase
- re implemented deprecated effector (originally from rid-lib), with a stronger integration with the processing pipeline
- factored out dependencies for developer facing code (knowledge handlers, effector actions) into "context" classes
- factored out protocol behaviors (handshake) into stand alone functions
- moved start/stop functions into NodeLifecycle class, added Server and NodePoller classes (factoring out more boilerplate), updated examples
- added source param for response handlers, generic type for node config
- added simple override params for all of the classes in node interface. this should be replaced at some point with a more sophisticated dependency injection system
- added custom errors for request handler failures, added new default knowledge handler to forget all edges connecting to forgotten nodes
- added config to handlercontext
- experimenting with context managers, and user defined node lifecycle
- compatibility changes for typescript implementation - added "type" literal field in all JSON payloads for easier discrimination/parsing
- changed format of signature to the raw integers r||s instead of DER representation (unfortunately very hard to find support in java/typescript for that)
- more compatibility changes for typescript compatibility
- edge hash now created by concatenating source and target strings
- null values excluded from payload
- removing None (null) values from models for validation with typescript implementation
- added behavior to lifecycle start to catch up with coordinators after being offline
- fixed issue with duplicate state providers returning
- moved actor to a different file name
- general bug fixes
- (non exhaustive list of changes)