Skip to content

Latest commit

 

History

History
951 lines (639 loc) · 60.4 KB

releases.rst

File metadata and controls

951 lines (639 loc) · 60.4 KB

Releases

v7.2.0 (2024-02-13)

Features

  • Automatically migrate configuration files if detected as using an older version. (#3432)
  • Add workflow for pushing published releases to pypi (#3433)

Bugfixes

  • Incorrect use of INTERVAL class variable for SimpleTask - it affected the interval for the EventScannerTask. (#3435)
  • Properly update ssl contexts to use updated CA cert data for a node which has been restarted. (#3440)

Deprecations and Removals

  • Removes the /node_metadata GET endpoint (#3410)

Misc

  • Peer TLS certificates are no longer stored on the node's disk. (#3307)
  • Optimizes blockchain reads for dkg coordination and artifacts for call data volume. (#3419)
  • Improve caching of data needed for threshold decryption by the node - reduces RPC calls and decryption time. (#3428)
  • Optimize EventScanner chunking for Polygon given its blocktime. (#3434)
  • Update EventScanner to obtain events of different types as part of the same RPC call to reduce the volume of rpc calls. (#3444)

Internal Development Tasks

v7.1.0 (2024-01-30)

Features

  • Make Prometheus exporter always run for Ursula (#3223)
  • (#3224)
  • Add Prometheus metrics endpoint to running logs (#3231)
  • Add metrics for root and child networks. (#3339)
  • Make prometheus optional, and allow fine tuning of collection interval. (#3388)
  • Add prometheus metrics for tracking total threshold decryption requests and errors. (#3397)

Bugfixes

  • Don't use web3.py gas strategies, since that switches TX mode to legacy. (#3368)
  • Node blocks and remains unresponsive when another node in the cohort is unreachable during a dkg ritual because the ferveo public key is obtained from a node directly through node discovery. Instead, obtain ferveo public key from Coordinator contract so that connecting to the another node in the cohort is unnecessary. (#3390)
  • Fix MAX_UPLOAD_CONTENT_LENGTH too small for mainnet TACo rituals (#3396)
  • Ensure incoming request ip addresses resolution handles proxied headers. (#3398)

Deprecations and Removals

Misc

  • Peer TLS certificates are no longer stored on the node's disk. (#3307)
  • Deprecate use of Goerli for Lynx testnets; use Sepolia instead. (#3376)
  • Scan for ritual events less often to be more efficient with RPC requests. (#3416)

Internal Development Tasks

v7.0.4 (2023-12-15)

Bugfixes

  • Don't needlessly block during block_until_ready on node startup if node is deemed to be bonded and funded. (#3366)

v7.0.3 (2023-12-11)

Misc

  • Increase startup poll rate for checking bonding/funding from 10s to 120s. (#3364)

v7.0.2 (2023-12-07)

v7.0.1 (2023-12-04)

Internal Development Tasks

v7.0.0 (2023-12-01)

Features

  • Basic support for polygon conditions (#2986)
  • Add artifacts for new network: tapir (#2996)
  • Update contract registry for lynx network (#3000)
  • Allow a key to be specified for evaluating the return value (#3002)
  • Bump nucypher-core to 0.6. (#3049)
  • Include inventory entries for oryx. (#3069)
  • Introduces support for DKG and Threshold Decryption. (#3083)
  • Enables "Simple" threshold decryption variant and threshold decryption functionlity by Bob. (#3088)
  • End-to-end encryption for CBD decryption requests. (#3123)
  • TimeCondition now uses the timestamp of the latest block for evaluating conditions, instead of system time. System time condition evaluation is no longer supported. (#3139)
  • Implement prefix notation for access control conditions with logical operators. (#3140)
  • Sublcasses of Bob and Enrico which allow local, off-chain development and styling of both success and failure cases, which can be forced instead of checking conditions. (#3143)
  • Add version element to condition language to allow future changes and to manage backwards compatibility. (#3145)
  • Increase default timeout for /reencrypt requests to limit timeouts when multiple retrieval kits are included in a single request. (#3153)
  • Reset default ferveo variant to be simple. We can revisit whenever we add logic to properly deal with request failures for the precomputed variant. (#3174)
    • Support arbitrary multichain configuration for EVM-compatible blockchains for condition evaluation by ursula.
    • Support for fallback RPC providers and multiple URI specification for a single chain ID. (#3185)
  • Implement data encapsulation when encrypting data using ferveo encryption by utilizing ThresholdMessageKit and AccessControlPolicy. Provide framework to incorporate authorization allow logic for authorized encryptors of data for a ritual. (#3194)
  • Add a mandatory condition_type field to condition schemas (#3201)
  • New HTTP(S) endpoint to return a list of all the blockchains a node is currently connected to for conditions evaluation. (#3205)
  • Introduces nucypher ursula config migrate for configuration file automation. (#3207)
  • Implement functionality related to Encryptor authorization for specific ritual. Obtain ritual threshold from Coordinator contract. (#3213)
  • Nodes reject decryption requests for already expired rituals. (#3279)
  • Added not operator functionality to CompoundAccessControlCondition so that the logical inverse of conditions can be evaluated. (#3293)
  • Allow Bob / ThresholdAccessControlClient decryption and reencryption operations to specify timeouts. (#3337)
  • Use TACoChildApplication contract for node sampling instead of TACoApplication contract. (#3341)

Bugfixes

  • temp workaround for Ropsten/oryx gas estimation issue (#2943)
  • Show fleet state checksums as hex instead of an escaped bytestring (#2946)
  • Correctly validate domain/network values provided via the --network parameter in the CLI. (#2952)
  • Call _resolve_abi after the condition is initialized (#3014)
  • Properly handle PRE request with no condition. (#3025)
  • Restrict return value key to integer only (#3032)
  • Use decoded text from failed HTTP Responses for exception messages. (#3042)
  • Properly convert ritual id to bytes when being used as a seed for generating a session key. (#3178)
  • Fix staking metrics in Prometheus exporter (#3199)
  • Fix Prometheus import error when running Porter (#3202)
  • (#3203, #3209, #3214)
  • UrsulaConfiguration object should not be too eager to connect to provided blockchain endpoints; if faulty then the configuration file can't be updated. (#3282)
  • Fix nucypher CLI: ursula config ip-address (#3292)
  • Fix issues when bytes are provided as hex for return value comparators. Make condition value types more strict by using ABI to validate. (#3303)
  • Address bug where context variable not properly processed when doing type checking for multi-value output. (#3312)
  • Include the port in seeds.nucyher.network URL entry in dictionary of teacher nodes for mainnet. (#3332)

Improved Documentation

Deprecations and Removals

  • Remove set up dependency on setuptools-markdown which is no longer needed, but caused build failures. (#2942)
  • Deprecates alice, bob, and contact CLI commands. (#2985)
  • Removals: - RPC servers - character WebControllers - unused literature - unused CLI option definitions - CLI helper functions for Alice, Bob, Contacts interactivity - interactive Ursula mode - enrico CLI commands (#2987)
  • Removes LMDB Datastore (#2988)
  • Removes clef and trezor signer support (#2989)
  • Relocate porter to nucypher/nucypher-porter (#2990)
  • Retires the Ibex and Oryx testnets (#2998)
  • Deprecated "federated mode" ursulas and the --federated-only launch flag. (#3030)
  • Deprecated "timelock" time condition that used system time in favor of a condition that uses block time. (#3139)
  • Remove the use of infix notation for access control conditions with logical operators in favor of prefix notation. (#3140)
  • removes nucypher bond CLI (#3149)
  • (#3234)
  • Remove EconomicsFactory and Economics classes. (#3241)
  • Remove AdjudicatorAgent and custom Dispatcher proxy logic. (#3243)
  • Deprecate configuration config/parameters pre-payment-network, coordinator_uri since the L2 network is implied based on TACo network used. (#3262)

Misc

  • Add default seed node for Oryx testnet. (#2944)
  • Prometheus metrics exporter returned (#2950)
  • Extends policy probationary period until August 31st, 2022. No policies may be created on the network beyond this date. (#2952)
  • Cleanup of prometheus metrics collection. (#2954)
  • Reworks internal blockchain connection cache to support multiple concurrent connections. (#3137)
  • Ensure that nodes can be more resilient when handling events related to rituals. (#3183)
  • Use a time-to-live cache for trakcing ritual participation state which gets periodically purged when ritual state is deemed stale. (#3191)
  • Don't allow users to specify the FerveoVariant to use for threshold decryption. The default, simple variant, will be used. (#3193)
  • (#3204, #3210, #3215, #3220)
  • Update Ursula configuration version from 6 to 7. Check operator for MATIC funding instead of ETH on startup. Handle separation between mainnet root application contract and l2 child application contract. (#3227)
  • Properly detect operator bonding status by using both TACoChildApplicationAgent and TACoApplicationAgent to ensure consistency. (#3237)
  • Contract registries now use JSON format and support multi-chain deployments organized by nucypher "domain". (#3261)
  • Since the L2 network is always implied based on the TACo network connected to, we no longer need those config/parameters across the codebase, it can be inferred. Each Character now takes optional eth and polygon endpoints. Remove various usages of redundant L2 values. General rename from [eth_]provider[_uri] to [blockchain/eth/polygon]_endpoint. (#3262)
  • Add tapir contract registry. (#3277)
  • Reduce the number of times the blockchain is queried for chain id. (#3285)
  • Add nucypher taco rituals CLI command to list ritual information for a TACo domain. (#3290)
  • Require condition RPC endpoints for node startup (#3318)

Internal Development Tasks

v6.1.0 (2022-05-10)

Features

  • SSL Certificate fetching and Porter optimizations - Middleware should try cached SSL certification for a node first, and then if the requests fails, fetch the node's up-to-date SSL cert - Short-circuit WorkerPool background execution once sufficient successful executions occur - Don't limit WorkerPool size; this has consequences when smaller samples of ursulas are performed; allow threadpool to be flexible by using default min/max - Return more comprehensive error information for failed WorkerPool execution (#2908)

Bugfixes

  • Fix Porter sampling check that ensures Ursula is reachable to be more comprehensive; previously an unreachable Ursula could still be deemed as reachable. (#2888)
  • Only print relevant network options when running nucypher ursula init (#2917)
  • Retrieve contract registries from the development branch on GitHub instead of main. (#2924)
  • Properly support event retrieval for the PREApplication contract. Remove invalid support for SubscriptionManager contract - proper support will be added in a future release. (#2934)

Improved Documentation

  • Remove references to cloudworkers CLI command, and update bond operator to reference UI. (#2896)
  • Updated examples and demos for usage on polygon/mainnet. (#2897)
  • Updates to nucypher-ops guides for mainnet usage (#2916)

Misc

  • Dependency updates - Tests target the london fork. (#2837)
  • Creation of 'oryx' PRE testnet on Ropsten. (#2893)
  • Add more color to cli output (#2909)
  • Add a pre-commit hook and github action for Darker to ensure all future changes conform to black and isort. (#2921)
  • Bump nucypher-core dependency to 0.2 (#2927)
  • Show error message when --prometheus flag is used since functionality not currently supported. Prometheus monitoring functionality will be revamped in a subsequent release. (#2929)
  • Removes [docs] pip extra (#2932)

v6.0.0 (2022-04-01)

Features

  • Introduction of NuCypher Porter - a web-based service that performs nucypher protocol operations on behalf of applications for cross-platform functionality. (#2664)
  • Ursula no longer stores KFrags, instead Alice encrypts them inside the treasure map. Allow the KFrag generator and policy publisher to be different entities. (#2687)
  • Characters use mnemonic seed words to derive deterministic keystore, taking the place of the "keyring". (#2701)
  • Simplifies the retrieval protocol (see #259 for the discussion). PolicyMessageKit is renamed to MessageKit. Bob.retrieve() is renamed to retrieve_and_decrypt(), and its signature is simplified: it only requires the treasure map, Alice's verifying key, and the policy encrypting key. A lower-level Bob.retrieve() is added that does not decrypt, but only attempts to retrieve the capsule frags. (#2730)
  • Allow importing of secret key material for power derivations. (#2742)
  • Uniform versioning of bytes serializable protocol entities. (#2767)
  • Modify Porter REST endpoint from /exec_work_order to /retrieve_cfrags and modify request parameters for retrieval of re-encrypted data. Update Bob /retrieve_and_decrypt REST endpoint to accept a list of message kits instead of only one - to match updated Bob.retrieve_and_decrypt Python API. (#2768)
  • Update WorkerPool error messages returned by Porter API. (#2772)
  • Adds ansible build/deploy for Monitor (status.nucypher.network) (#2801)
  • Extend brand size in Versioned to 4 bytes (#2805)
  • CORS, NGINX support for Porter: - Added opt-in CORS origins support to Porter; no origins allowed by default when running Porter directly. - Provided docker-compose execution for Porter to run behind an NGINX reverse proxy server - all origins allowed by default for CORS, but can be customized. NGINX allows for the potential for more complex infrastructure configurations. (#2807)
  • (#2809)
  • Halting NU inflation, now refund in WorkLock is possible without work (claim still needed) (#2822)
  • Updates to integrate NuCypher into Threshold Network (#2824)
  • Integrate StakingEscrow with Threshold Network's TokenStaking (#2825)
  • Removes snapshots logic from StakingEscrow (#2831)
  • Switched to Rust implementation of the protocol types (nucypher-core). Correspondingly, API has been simplified, and type requirements have been made more strict. (#2832)
  • Simple PRE application contract (#2838)
  • Renames operator to staking provider and worker to operator (#2851)
  • Modifies Ursulas for usage as Operators on the Threshold Network's PRE Application. (#2857)
    • Full support of policy payments sumitted to polygon in demos and top-level APIs.
    • Improved certificate handling for network requests.
    • Prioritizes in-memory node storage for all node runtimes. (#2873)
  • Updated nucypher-core to 0.1 (#2883)
  • Proactively shut down Ursula if it is no longer bonded to any staking provider. (#2886)
  • Include polygon/matic contract registry for mainnet. (#2894)

Bugfixes

  • (#2727)
  • Cloudworkers: ignore errors on stopping of ursula containers (#2728)
  • Fixed a problem with node metadata being stored to a file with an incorrect name (#2748)
  • Fixed failing transactions when gas price used is not an integer. (#2753)
  • Stop writing bytes to log file which causes exceptions - instead write the hex representation. (#2762)
  • StakingEscrow.partition_stakers_by_activity() no longer includes stakers with expired stakes in the missing_stakers value returned, thereby no longer overstating the number of inactive stakers. (#2764)
  • force pull latest tagged image on external geth deployment (#2766)
  • Minor memory improvement when collecting staker/worker metrics for prometheus. (#2785)
  • Fix bug when generating file for output of events from status & stake cli commands. (#2786)
  • Only use public data to generate keystore IDs and filenames. (#2800)
  • Fixed WebController bug caused by Path object for TLS/certificate path provided to Hendrix instead of a string. (#2807)
  • Avoid crashing the learning loop if there is a problem in the metadata returned by seed nodes. (#2815)
  • Fixed a missing timestamp error when a node's status is requested before it participated in metadata exchange. (#2819)
  • Fixed a memory leak in Ursula: removed some teacher statistics accumulated over time, and limited the amount of old fleet states stored. (#2820)
  • Fixed some occurrences of the old term for shares (n) (#2829)
  • Fix an incorrect usage of node object in FleetSensor. (#2877)
  • Fix runaway WorkTracker task that ensures operator confirmed transaction occurs but continues running and making web3 requests even after operator already confirmed. (#2886)

Improved Documentation

  • Document how worker period commitment works. (#2776)
  • Update documentation to reflect new TreasureMap con KFrags design. (#2833)
  • Overhaul NuCypher documentation to accommodate the new PRE Application / Threshold Network paradigm. (#2870)
  • Add documentation about bonding an operator to a staking provider. (#2874)
  • Embed Threshold Network videos within docs. (#2882)

Deprecations and Removals

  • Renames enviorment variable NUCYPHER_KEYRING_PASSWORD to NUCYPHER_KEYSTORE_PASSWORD (#2701)
  • m and n parameters can no longer be used in character control and Python API; --m and --n are no longer supported by the CLI (-m and -n still are; the long versions are now --threshold and --shares) (#2774)
  • Removal of treasure map storage functionality and supporting publication APIs from the decentralized network. Encrypted treasure maps must be obtained from side channels instead of Ursulas on the network (unless cached). (#2780)
  • Remove an unused method of Amonia (deprecated since we do not store the treasure map on Ursulas anymore) (#2804)
  • Removes the Arrangement API for Alice/Ursula negotiations. Use a simple livliness check during grant-time. (#2808)
  • Retires and removes eth/token faucet. (#2848)
  • Remove NuCypher DAO specific code since we are now the Threshold DAO. (#2864)
  • Removes 'cloudworkers' CLI command in favor of nucypher-ops. (#2895)

Misc

  • Switch to PyUmbral 0.2 and adjust its usage according to the changed API. (#2612)
  • Add disclaimers to nucypher stake increase and nucypher stake merge CLI operations to provide warning about potential reduced rewards for the first period after stake increase due to a known bug, and the workaround. (#2693)
  • Added a more informative error message for WorkerPool exceptions. (#2744)
  • Separated Alice and Publisher roles internally and in relevant public APIs (#2745)
  • TreasureMap split into TreasureMap and EncryptedTreasureMap; external methods of Bob and Porter now take the latter, with the parameter named 'encrypted_treasure_map'. SignedTreasureMap is merged with TreasureMap. (#2773)
  • Changed the names of m and n parameters to threshold and shares throughout the API. (#2774)
  • Extends policy probationary period until October 31st, 2021. No policies may be created on the network beyond this date. (#2779)
  • Umbral dependency bumped to v0.3.0 (#2798)
  • Extracting protocol logic into an underlying layer and preparing to move it to Rust. Involves multiple ABI changes (in Arrangement, MessageKit, RevocationOrder, EncryptedTreasureMap, node metadata). In particular, old node metadata will be backward incompatible with the current version, since it now shares the versoning logic with other protocol objects. (#2802)
  • Move some cryptographic operations inside the Rust extension. Remove dependency on umbral and coincurve. (#2850)
  • Extend policy probationary period to 2022-6-16T23:59:59.0Z. (#2873)

v5.3.3 (2021-11-24)

Bugfixes

  • Fixed a memory leak in Ursula; removed some teacher statistics accumulated over time. (#2826)

v5.3.2 (2021-10-15)

Bugfixes

  • Regenerate Ursula TLS certificates if the become invalid, e.g. become expired. (#2810)

Misc

  • Extend policy probationary period until December 31st, 2021. No policies may be created on the network that extend beyond this date. (#2810)

v5.3.1 (2021-08-12)

Bugfixes

  • Hotfix - removed Etherchain as a datafeed for now since its format was modified and caused the gas price calculation to fail. (#2769)

v5.3.0 (2021-06-17)

Features

  • PolicyManager: creating multiple policies in one tx (#2619)
  • Adds a new CLI command to show past and present staking rewards, "stake rewards show". (#2634)
  • Adds "https://closest-seed.nucypher.network" and "https://mainnet.nucypher.network" as a fallback teacher nodes for mainnet. (#2657)
  • Whitespaces in character nicknames are now implicitly replaced with an underscore ("_"). (#2672)
  • Added timestamp and date columns to csv output of "nucypher status events" command. (#2680)
  • Ursula will now check for active stakes on startup. (#2688)
  • Add sub-stake boost information to staking CLI. (#2690)

Bugfixes

  • Fixed issues where failing transactions would result in incorrect token allowance and prevent creation of new stakes. (#2673)
  • examples/run_demo_ursula_fleet.py - Clean up each DB on shutdown. (#2681)
  • Fix a performance regression in FleetSensor where nodes were matured prematurely (pun not intended) (#2709)

Improved Documentation

  • Include annotated description of the worker status page. (#2665)
  • Update service fee pricing to reflect correct per period rate since periods are now 7-days. (#2677)
  • Add documentation about calculation of staking rewards. (#2690)

Deprecations and Removals

  • Moves "stake collect-reward" to "stake rewards withdraw" command. (#2634)
  • Remove IndisputableEvidence (#2699)

Misc

  • Registry for NuCypher DAO entities. (#2426)
  • Added code used to generate the DAO Proposal #1, for reference purposes. (#2616)
  • Improves password collection hints while running init commands. (#2662)
  • Extend policy probationary period until August 31st, 2021. No policies may be created on the network beyond this date. (#2716)

v5.2.0 (2021-04-26)

Features

  • CLI option --duration-periods renamed to --payment-periods. (#2650)

Bugfixes

  • Fixed inability to update ursula configuration file due to the keyring not being instantiated - updated logic no longer needs keyring to be instantiated. (#2660)

Misc

  • Extends policy probationary period until May 31st, 2021. No policies may be created on the network beyond this date. (#2656)

v5.1.0 (2021-04-15)

Features

  • Improve UX for character CLI when there are multiple configuration files:
    • If there are multiple possible character configuration files prompt the user to choose
    • If there is only one character configuration file, even if not the default filename, use lone configuration without prompting and print to CLI. (#2617)

Bugfixes

  • Ensure that correct configuration filepath is displayed when initializing characters, and add hint about using --config-file <FILE> for subsequent CLI commands if non-default filepath used. (#2617)

v5.0.2 (2021-04-14)

Bugfixes

  • Fixed incorrect use of genesis value for seconds_per_period when estimating block number based on period number - applies to prometheus metrics collection and nucypher status events. (#2646)

v5.0.1 (2021-04-14)

No significant changes.

v5.0.0 (2021-04-14)

Features

  • Increase period duration in contracts and handle migration of current stakes to new format. (#2549)
  • DAO proposal #1: Improve staker P/L by increasing period duration. (#2594)
  • Refinements for pool staking contract (#2596)
  • New standalone geth fullnode ansible playbook. (#2624)

Bugfixes

  • Accommodate migrated period duration in CLI UX. (#2614)
  • cloudworkers more throughoughly cleans up diskspace before updates. (#2618)
  • Bob now accepts provider_uri as an optional parameter (#2626)
  • Add a default gas limit multiplier of 1.15 for all outgoing ETH transactions (#2637)

Improved Documentation

  • Document staking smart contract API and the base staking pool implementation (PoolingStakingContractV2). (#2597)

Misc

  • Change filepath delimiter to dot (".") in Card Storage API (#2628)
  • Use constant for loopback address across the codebase. (#2629)

v4.8.2 (2021-03-25)

Bugfixes

  • Fixes ethereum account selection with ambiguous source in CLI. (#2615)

v4.8.1 (2021-03-24)

Bugfixes

  • Add balance_eth, balance_nu, missing_commitments and last_committed_period to the /status REST endpoint. (#2611)

v4.8.0 (2021-03-23)

Features

  • Expanded features for staker and status CLI:
    • Support substake inspection via nucypher status stakers --substakes.
    • Automated transaction series for inactive substake removal.
    • Display unlocked NU amount from stakers status.
    • Handle replacement of stuck withdraw transactions with --replace. (#2528)
  • Support extended period migration by nodes via work tracker. (#2607)

Bugfixes

  • Improved import error feedback and default ssh key path in cloudworkers. (#2598)
  • Support geth 1.10.x - Remove chainID from transaction payloads. (#2603)

Improved Documentation

  • Document minimum approval and support requirements for NuCypher DAO. (#2599)

Deprecations and Removals

  • Deprecate worker IP address as environment variable (NUCYPHER_WORKER_IP_ADDRESS). (#2583)

Misc

  • Adjust Ursula.status_info() API to make it easier for nucypher-monitor to collect data. (#2574)

v4.7.1 (2021-03-02)

Bugfixes

  • Fixed missing domain parameter causing Ursulas to fail on startup when prometheus is enabled. (#2589)

v4.7.0 (2021-03-02)

Features

  • New preferable base pooling contract (#2544)
  • The output of nucypher stake events can be written to a csv file for simpler staker accounting. (#2548)
  • Simplifies CLI usage with optional interactive collection of all CLI parameters used during grant, encrypt, and retrieve. (#2551)
  • Improved status codes and error messages for various PRE http endpoints (#2562)
  • nucypher status events can now use event filters and be output to a csv file for simpler accounting. (#2573)

Bugfixes

  • Properly handles public TLS certificate restoration; Simplify Ursula construction. (#2536)
  • Update the call to estimateGas() according to the new web3 API (#2543)
  • Ensure remote ethereum provider connection is automatically established with characters. Fixes default keyring filepath generation. (#2550)
  • Cache Alice's transacting power for later activation. (#2555)
  • Prevent process hanging in the cases when the main thread finishes before the treasure map publisher (#2557)

Improved Documentation

  • Documentation overhaul with focus on staking node operation (#2463)
  • Expands Alice grant example using the python API. (#2554)

Deprecations and Removals

  • Deprecated StakingEscrow features to reduce code size: batch deposits, testContract flag, locking reStake. Deployment of StakingEscrow is split in two steps: initial step with stub and final step after all contracts. (#2518)

Misc

  • Refactor FleetSensor; add "/status/?omit_known_nodes=true" argument; prevent internal constants from leaking into the status page. (#2352)
  • WorkLock prometheus metrics are only collected on mainnet. (#2546)
  • Sister demo for Finnegan's wake for use on lynx/goerli testnet. Alice and Bob API cleanup compelled by EthDenver 2021. (#2560)
  • Rework internal transaction signing API for improved thread saftey. (#2572)
  • new seed URL for mainnet seeds.nucypher.network cloudworkers CLI updates (#2576)
  • Extends probationary period for policy creation in the network to 2021-04-30 23:59:59 UTC. (#2585)

v4.6.0 (2021-01-26)

Misc

  • Introduces the Lynx testnet, a more stable environment to learn how to use NuCypher and integrate it into other apps. (#2537)

v4.5.4 (2021-01-22)

Bugfixes

  • Fix wrong usage of net_version to identify the EthereumClient client chain. (#2484)
  • Use eth_chainId instead of net_version to maintain compatibility with geth. (#2533)
  • Fixed infinite loop during learning when timing out but known nodes exceeds target. (#2534)

v4.5.3 (2021-01-18)

Bugfixes

  • Ensure minimum number of available peers for fleet-sourced IP determination and better handling of default teacher unavailability scenarios on startup (#2527)

v4.5.2 (2021-01-15)

No significant changes.

v4.5.1 (2021-01-15)

No significant changes.

v4.5.0 (2021-01-14)

Features

  • Compare Ursula IP address with configuration values on startup to help ensure node availability. (#2462)
  • Arrangement proposals and policy enactment are performed in parallel, with more nodes being considered as some of the requests fail. This improves granting reliability. (#2482)

Bugfixes

  • More logging added for arrangement proposal failures, and more suitable exceptions thrown. (#2479)
  • Ignore pending Ethereum transactions for purposes of gas estimation. (#2486)
  • Fix rtd build after #2477 (#2489)
  • (#2491, #2498)
  • Fix rtd build after #2477 and #2489 (#2492)
  • cloudworkers bugfixes, cli args refactor and new "cloudworkers stop" feature. (#2494)
  • Gentler handling of unsigned stamps from stranger Ursulas on status endpoint (#2515)
  • Restore the re-raising behavior in BlockchainInterface._handle_failed_transaction() (#2521)

Improved Documentation

  • Auto docs generation for smart contracts (#2477)
  • Add pricing protocol & economics paper to main repo readme and docs homepage. (#2520)

Deprecations and Removals

  • (#2470)
  • Deprecated manual worker commitments using the CLI. (#2507)

Misc

  • Relock dependencies and update relock script. (#2440)
  • Fixed failing readthedocs build due to dependency mismatches in docs requirements. (#2496)
  • (#2499)
  • Ensure that documentation dependencies are updated when standard/development dependencies are updated. (#2510)

v4.4.0 (2020-12-24)

Features

  • Introduces "Character Cards" a serializable identity abstraction and 'nucypher contacts' CLI to support. (#2115)
    • nucypher cloudworkers now contains a complete and comprehensive set of features for easily managing, backing up and restoring one to many workers (#2365)
  • New composite gas strategy that uses the median from three different gas price oracles (currently, Etherchain, Upvest and gas-oracle.zoltu.io), which behaves more robustly against sporadic errors in the oracles (e.g., spikes, stuck feeds). (#2420)
  • Improve gas strategy selection: Infura users now can choose between slow, medium and fast, and a maximum gas price can be configured with --max-gas-price. (#2445)

Bugfixes

  • Slowly try more and more nodes if some of the initial draft for a policy were inaccessible. (#2416)
  • Fix bad cli handling in several cloudworkers commands, improved envvar handling. (#2475)

Misc

  • (#2244, #2483)
  • Solidity compilation refinements (#2461)
  • Deprecates internally managed geth process management (#2466)
  • Include checksum and IP addresses in exception messages for Rejected. (#2467)
  • Deprecates managed ethereum client syncing and stale interface methods (#2468)
  • Improves console messages for stakeholder CLI initialization and worker startup. (#2474)
  • Introduce a template to describe Pull Requests. (#2476)

v4.3.0 (2020-12-08)

Features

  • Introduces shorthand options for --bob-verifying-key (-bvk), --bob-encrypting-key (-bek) and alice verifying key (-avk) for CLI commands. (#2459)
  • Complete interactive collection of policy parameters via alice grant CLI. (#2460)

Bugfixes

  • Corrected minimum stake value for --min-stake CLI option (#2371)

Misc

  • Introduces a probationary period for policy creation in the network, until 2021-02-28 23:59:59 UTC. (#2431)
  • Supplies AccessDenied exception class for better incorrect password handling. (#2451)
  • Maintain compatibility with python 3.6 (removes re.Pattern annotations) (#2458)

v4.2.1 (2020-12-04)

Bugfixes

  • Removes tests import from constants module causing pip installed versions to crash. (#2452)

v4.2.0 (2020-12-03)

Features

  • Improve user experience when removing unused substakes (CLI and docs). (#2450)

Bugfixes

  • Fix bug in deployer logic while transferring ownership of StakingInterfaceRouter (#2369)
  • Allow arbitrary decimal precision when entering NU amounts to nucypher CLI. (#2441)

Improved Documentation

  • Document usage of hardware wallets for signing. (#2346)
  • Improvements to the staking guide: extending description of winddown command, other minor corrections. (#2434)

Misc

  • Rework internal solidity compiler usage to implement "Standard JSON Compile". (#2439)
  • Introduces --config-path and --logging-path CLI flags displaying default nucypher directories (#2446)

v4.1.2 (2020-11-09)

Features

  • Added support for a user-provided gas price to the nucypher stake command, using --gas-price GWEI. (#2425)

Bugfixes

  • Correct CLI problems when setting the min fee rate. Also, simplifies usage by expressing rates in GWEI. (#2390)

  • Tone-down learning logging messages even more (see issue #1712). Fixes some CLI and exception messages. (#2395)

  • Fixes logical bug in WorkTracker to ensure commitment transactions can only be issued once per period. (#2406)

  • Removes leftover imports of Twisted Logger, using instead our shim (Closes #2404). Also, changes NuCypher Logger behavior to always escape curly braces. (#2412)

  • Now BlockchainInterface.gas_strategy always has a value; previously it was possible to pass None via the constructor (e.g. if the config file had an explicit "null" value). (#2421)

  • Take advantage of the changes in PR#2410 by retrying worker commitments on failure (#2422)

  • Domain "leakage", or nodes saving metadata about nodes from other domains (but never being able to verify them) was still possible because domain-checking only occurred in the high-level APIs (and not, for example, when checking metadata POSTed to the node_metadata_exchange endpoint). This fixes that (fixes #2417).

    Additionally, domains are no longer separated into "serving" or "learning". Each Learner instance now has exactly one domain, and it is called domain. (#2423)

Misc

  • Updates contract registry after upgrade of StakingEscrow to v5.5.1, at behest of the DAO (proposal #0). (#2402)
  • Improved newsfragments README file to clarify release note entry naming convention. (#2415)

v4.1.1 (2020-10-29)

Features

  • Add CLI functionality for the removal of unused (inactive) sub-stakes. Depending on the staker's sub-stake configuration, this command can reduce the associated worker's gas costs when making commitments. (#2384)

Bugfixes

  • Automatically restart Ursula worker task on failure. (#2410)

Improved Documentation

  • Update global fee range documentation, including genesis values. (#2363)

Misc

  • Update Ursula network grant availability script for mainnet usage. (#2383)
  • GitHub Action to ensure that each pull request into main makes an associated release note entry. (#2396)

v4.1.0 (2020-10-19)

Bugfixes

  • Temporary workaround for lack of single attribute for the value of "domain" in sprouts and mature nodes. (#2356)
  • Show the correct fleet state on Ursula status page. (#2368)
  • Don't crash when handling failed transaction; reduce network learning messages. (#2375)
  • Reduce the greediness of prometheus metrics collection. (#2376)
  • Ensure minimum NU stake is allowed instead of stake creation failing for not enough tokens. (#2377)
  • Fixes to status page based on reworked design done in PR #2351. (#2378)
  • Track pending Ursula commitment transactions due to slower gas strategies. (#2389)

v4.0.1 (2020-10-14)

Misc

  • Set default teacher uri for mainnet. (#2367)

v4.0.0 (2020-10-14)

🚀 Mainnet Launch 🚀