Skip to content

v1.1.0

Choose a tag to compare

@lukvmil lukvmil released this 10 Sep 21:21
· 235 commits to main since this release

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)