Commit Graph

6527 Commits (v7.5.0)

Author SHA1 Message Date
derekpierre 89e1530655
Adjust `nucypher ursula recover` so that when keystore filepath is provided we properly use it, and don't try to recover using a mnemonic. 2024-09-12 15:53:30 -04:00
derekpierre cb89bdaac8
Ensure that we raise click.Abort(). 2024-09-12 15:53:29 -04:00
KPrasch 1e08388565
Support for complete node reinitialization/relocation using an existing mnemonic 2024-09-12 15:53:29 -04:00
derekpierre 019569c36e
Use 2-space indents.
Truncate the file so that any additional data after the overwrite gets removed.
2024-09-12 15:53:27 -04:00
KPrasch b6738b4ac0
fixes missing return statement 2024-09-12 15:53:27 -04:00
KPrasch 67c88697e3
Expands Keystore API to include audit and recovery features 2024-09-12 15:53:26 -04:00
KPrasch 9c345a97df
expands recovery CLI into three commands for keystore identification and auditing 2024-09-12 15:53:25 -04:00
KPrasch 98e3b37365
Expands public-keys CLI command to use default keystore filepath from config 2024-09-12 15:53:24 -04:00
KPrasch 8b4bc22499
Expand recovery CLI to include password and mnemonic verification features 2024-09-12 15:53:24 -04:00
derekpierre c5b2204e84
Open file for reading, and then for writing to prevent dangling data at the end if updated data is shorter than existing data. 2024-09-12 15:53:23 -04:00
derekpierre 321ffd4a98
Remove additional unnecessary CLI options for the "ursula recover" command. 2024-09-12 15:53:23 -04:00
derekpierre c64e5c8643
Added "nucypher ursula public-keys" for printing ferveo key based on current keystore.
Co-authored-by: KPrasch <kieranprasch@gmail.com>
2024-09-12 15:53:22 -04:00
derekpierre 8ff2c9e6b3
Update ursula recover to update keystore path entry in existing ursula configuration file.
Co-authored-by: KPrasch <kieranprasch@gmail.com>
2024-09-12 15:53:21 -04:00
Derek Pierre 66c362060f
Apply RFC for #3535
Co-authored-by: KPrasch <kieranprasch@gmail.com>
2024-09-12 15:53:10 -04:00
derekpierre 13510ecaa9
It's possible (for now) for a Ritual to not have a fee model address associated with it (legacy lynx for example). 2024-09-12 15:53:08 -04:00
derekpierre acc1615529
Re-organize code to make testing easier for now - this should probably be made cleaner, but in the interim it allows the tests to pass. 2024-09-12 15:53:06 -04:00
derekpierre ad04e6efa1
Finish renaming from derive_decryption_share to produce_decryption_share. 2024-09-12 15:53:05 -04:00
David Núñez 7f746bf022
Draft of how to query IEncryptionAuthorized directly, instead of via Coordinator 2024-09-12 15:53:05 -04:00
David Núñez 211ede8936
Add deprecation note for Coordinator.is_encryption_authorized. See #3349 2024-09-12 15:53:04 -04:00
David Núñez df1b0daaa8
Rename some TDec methods 2024-09-12 15:53:03 -04:00
derekpierre a30d976463
Update python Ritual struct to store fee model contract address included in updated contract Ritual struct. 2024-09-12 15:53:02 -04:00
derekpierre 7f636613f1
Update CoordinatorAgent and MockCoordinatorAgent initiateRitual calls to include fee model contract. 2024-09-12 15:53:01 -04:00
KPrasch 68306d9b5e
handle multiple json path query results as ambiguous 2024-09-12 15:52:57 -04:00
KPrasch 8878c10613
relocates JsonApiCondition timeout to a classvar 2024-09-12 15:52:56 -04:00
KPrasch 10c37d873a
Implements second layer of condition inout validation for use with python-only consunption 2024-09-12 15:52:56 -04:00
KPrasch c8e7d5eac3
support primitive responses for JsonApiCondition 2024-09-12 15:52:55 -04:00
KPrasch 3f2e3df059
Use Marshmallow's URL field for HTTPS enforcement of JsonApiCondition endpoint parsing 2024-09-12 15:52:55 -04:00
KPrasch e727f95744
fixes json path field error rendering 2024-09-12 15:52:54 -04:00
KPrasch 40b7b65508
Implement a redundant validation of JsonApiCondition scheme (RFC) 2024-09-12 15:52:53 -04:00
KPrasch 06af880616
restrictive design: unexpose custom request headers and require https 2024-09-12 15:52:53 -04:00
KPrasch f2c7337483
respond to RFCs in PR #3511 2024-09-12 15:52:52 -04:00
KPrasch 679f20e154
Demonstrates offchain condition lingo expression deserialization and class resolution 2024-09-12 15:52:51 -04:00
KPrasch 98597d9d27
fix: handle non-JSON responses correctly 2024-09-12 15:52:51 -04:00
KPrasch ecc8b16602
error handling and logging for offchain condition evaluations 2024-09-12 15:52:50 -04:00
KPrasch 95b81bf6f9
exposes request headers for offchain condition GET requests 2024-09-12 15:52:49 -04:00
KPrasch ed34186255
includes offchain condition class resolution in top level validator 2024-09-12 15:52:47 -04:00
KPrasch 0d9489762f
reword docstrings 2024-09-12 15:52:46 -04:00
KPrasch 36bf6a93f3
mocked ETH price condition from 3rd party party API 2024-09-12 15:52:45 -04:00
KPrasch 9313203353
Establish an OffchainCondition type 2024-09-12 15:52:44 -04:00
KPrasch 4dee63706d
Bump version: 7.4.1 → 7.5.0 2024-09-12 15:52:34 -04:00
derekpierre 5892b67d23
Modify order of adding middlewares, poa first (layer 0), then retry, then simple cache. 2024-09-05 08:47:10 -04:00
derekpierre b22fd0fcb5
Messages for logging addition of middleware now logged at info level so that we can always observe them in the logs. 2024-09-05 08:47:09 -04:00
derekpierre 646e2f5b11
Remove is_connected in favour of is_initialized for clarity. 2024-09-05 08:47:08 -04:00
derekpierre 258ebef8ef
Remove poa error redundancy middleware now that we understand the underlying cause of the problem. It was always a stop gap measure until we could determine the exact cause of the poa error; Now that we know the error it is no longer needed. 2024-09-05 08:47:04 -04:00
derekpierre 2158136c6f
BlockchainInterface.connect() should only ever be called once if successful; blips in connectivity should not cause it to be called again.
Blips in connectivity can cause resetting of underlying w3, client instances, and missing poa middleware if chain_id cannot be determined.

Co-authored-by: KPrasch <kieranprasch@gmail.com>
2024-09-05 08:47:03 -04:00
derekpierre 43e0dcb941
Make a call to eth.get_block after establishing an EthereumClient with middlewares to ensure that poa middleware, if needed, works correctly. 2024-09-05 08:47:01 -04:00
derekpierre 2ec5680a1f
Always name the middlewares we add to web3 middleware onion. 2024-09-05 08:46:59 -04:00
derekpierre f692b0650f
Always inject poa middleware for Web3 instances used for evaluating RPCConditions (and sub-classes). 2024-09-05 08:46:58 -04:00
derekpierre 930eaf9b23
Fix linter errors. 2024-09-05 08:46:57 -04:00
derekpierre 8be1f2590a
Always inject the poa middleware irrespective of chain. 2024-09-05 08:46:57 -04:00
derekpierre a0c0431969
Modify how poa error redundancy middleware is created for clarity and better cohesion with providing the name of the original poa middleware used. 2024-09-05 08:46:55 -04:00
derekpierre 45dcc317fe
Add redundancy POA error middleware that adds/replaces geth poa middleware if ExtraDataLengthError is encountered at any time. 2024-09-05 08:46:54 -04:00
derekpierre f834cfc5af
Bump version: 7.4.0 → 7.4.1 2024-09-05 08:46:49 -04:00
KPrasch 779724e7bf
Merge pull request #3533 from KPrasch/dkg-init-cli
Improves comms and key mismatch prevention while using the `init` CLI
2024-08-02 14:38:36 +07:00
KPrasch ccb1428557
Improves testing/mocking of ursula startup prevention due to ferveo key mismatch 2024-08-01 16:52:19 +07:00
KPrasch 0880e48dc8
handle test cases where operator address is untentionally unset in key mismatch prevention. 2024-08-01 01:21:41 +07:00
KPrasch 6e100a6371
handle unbonded operators when evaluating ferveo key publication at init-time 2024-08-01 00:06:19 +07:00
KPrasch e65d9a9c73
Prevent nucypher ursula init from executing by looking up operator address in the Coordinator contract. 2024-07-31 23:21:51 +07:00
derekpierre 6ba7cebb65
Fix linter errors. 2024-07-31 11:08:53 -04:00
KPrasch b88439536c
ensure that the production default config root is not used in tests to accmodate init-time checks for existing private keys 2024-07-31 21:28:28 +07:00
KPrasch f451a259e2
inspect the contents of the keystore directory when checking for init-time existing private keys 2024-07-31 21:26:57 +07:00
KPrasch 3e37a106b3
Increases correctness, accuracy and density of information provided to CLI users running initialization commands. 2024-07-31 17:45:01 +07:00
KPrasch 1d7597fa46
nudge poa investigation 2024-07-31 15:37:32 +07:00
derekpierre 463e1e2d16
Log POA middleware message at info level instead of debug. 2024-07-31 15:37:32 +07:00
derekpierre 81fb62dc07
Include stack trace in critical error message during ritual ceremony. 2024-07-29 16:38:34 -04:00
KPrasch 79a45b9935
do not retry dkg rounds from unrecoverable cryptographic failure 2024-07-29 16:38:34 -04:00
KPrasch 3354213ff8
Apply suggestions from code review
Co-authored-by: Derek Pierre <derek.pierre@gmail.com>
2024-07-29 23:01:52 +07:00
KPrasch 98fb407e77
more graceful handling of intentional node crashing 2024-07-29 22:58:42 +07:00
KPrasch 270d6b9f40
extract ferveo key mismatch detection on startup to a method for improved mocking capability 2024-07-29 22:23:50 +07:00
KPrasch 7263001db6
formalizes FerveoKeyMismatch includes acceptance test for mismatch conditions; updates mocks to handle key mismatch 2024-07-29 21:05:00 +07:00
KPrasch a5f876bc48
exposes current ferveo public key in ursula json status 2024-07-29 21:05:00 +07:00
KPrasch 7bf5de22dd
revises ferveo key mismatch warning text 2024-07-29 21:05:00 +07:00
KPrasch fd4812c54e
includes warning message for ferveo key mismatch 2024-07-29 21:05:00 +07:00
KPrasch 1ca813b27b
deliberately crash nodes with mismatched local vs. onchain ferveo public keys. This is a in-depth redundancy to compliment the startup check in case of bypassing the automated process. 2024-07-29 21:05:00 +07:00
KPrasch d8207bda99
prevent ursula startup if there is a local vs. onchain ferveo public key mismatch. 2024-07-29 21:05:00 +07:00
KPrasch f258496bae
Merge pull request #3522 from derekpierre/2-hour
EIP4361 freshness check ignores `not-before` value in SIWE message for freshness check; only `issued-at` is used
2024-07-29 19:53:55 +07:00
derekpierre 1af336f65d
Ensure that connect() is not called more than once unless issue with connection. 2024-07-27 17:04:58 -04:00
derekpierre d71f259b01
Removing int wrapping for call to property since unnecessary. 2024-07-26 13:12:02 -04:00
derekpierre 772ce39acd
Don't set w3 instance directly on ATxM object - the strategies use the instance provided at construction time. Therefore, only create ATxM instance once the web3 instance is fully configured during connect().
Now that EthereumClient handles middleware configuration, the BlockchainInterface no longer has to.

Co-authored-by: David Núñez <david@nucypher.com>
2024-07-26 11:39:04 -04:00
derekpierre 3780a2394c
Have the EthereumClient be the centralized spot for configuring all required middleware.
Co-authored-by: David Núñez <david@nucypher.com>
2024-07-26 11:36:55 -04:00
derekpierre 392506648d
Ensure that issued-at value is not in the future.
Add respective test.
2024-07-24 11:20:12 -04:00
derekpierre aa00d3aeb8
Use clearer message when address returned by signature for EIP712 does not match expected address. 2024-07-24 10:54:36 -04:00
derekpierre b7c9822be0
Enforce 2-hour freshness check for EIP4361 by always using issued_at - we no longer care whether `not_before` is present or not. 2024-07-24 10:53:54 -04:00
derekpierre fe02e51c41
Migration of Adapter use based on deprecation done for requests v2.32.2 via https://github.com/psf/requests/pull/6710. 2024-07-16 10:12:31 -04:00
derekpierre 796c29377d
Update use of SiweMessage object given breaking changes in updated siwe library.
Update tests accordingly including testing did URIs.
2024-07-16 09:38:15 -04:00
derekpierre 22bf9df1ad
Removal of unnecessary/no longer needed special context variables for EVM wallet authentication. These were never released publicly (local to v7.4.x branch) so no compatibility concerns removing them. 2024-07-04 13:53:22 -04:00
derekpierre 28df8b851f
Respond to RFCs for #3513. 2024-06-24 08:10:36 -04:00
derekpierre 184de55bfc
Handle context variable for EIP4361 auth signature, where the SIWE message and signature were passed through from the 3rd party app, and not created by TACo itself. 2024-06-21 12:17:00 -04:00
derekpierre 59d42b7b2e
Some code reorg that leaves space for additional authentication types other than EVM. 2024-06-06 15:48:45 -04:00
KPrasch 3b3263a57d
Merge pull request #3496 from KPrasch/rpc
Default RPC endpoints for Condition Evaluation
2024-06-05 15:52:19 +02:00
derekpierre 61544cca3d
Check for duplicate entries between user supplied endpoints and fallback endpoints. All endpoints for a specific chain should be unique. 2024-06-05 11:29:06 +02:00
KPrasch 31bf91650c
de-duplicate conditions URIs while preserving order 2024-06-04 15:29:35 +02:00
KPrasch f511ea37f6
Update nucypher/blockchain/eth/actors.py
Co-authored-by: Derek Pierre <derek.pierre@gmail.com>
2024-06-04 15:20:07 +02:00
KPrasch d7aaf43f8c
respond to RFCs in PR #3496 2024-05-30 15:17:53 +02:00
KPrasch 2d8a5baf1b
linting 2024-05-30 11:01:50 +02:00
KPrasch bdd66f2289
Improves fallback RPC endpoint logging; perform startup health check for operator-supplied RPC endpoints. 2024-05-30 10:45:47 +02:00
derekpierre 0214471462
Allow any valid user authentication scheme for `:userAddress` context variable processing. 2024-05-29 09:46:37 -04:00
derekpierre 7998074c0f
Rename auth scheme from SIWE to EIP4361. 2024-05-28 14:31:18 -04:00
derekpierre 5fb87792fe
Add directives for EIP712 and SIWE specific userAddress context variables, to force the use of a specific authentication scheme. 2024-05-28 14:30:54 -04:00
derekpierre f89cffd328
Adjust freshness check to occur after message verification, and skip if "not-before" is specified in the message. 2024-05-28 10:49:36 -04:00
KPrasch fb4ed7c008
condition providers set -> list 2024-05-28 15:48:23 +02:00
KPrasch 97d10b951a
detailed utility logging for default RPC endpoints 2024-05-28 15:48:23 +02:00
KPrasch faba9a10b9
Expands RPC health check logical branching to handle detailed failure cases; prepare for logging integration. 2024-05-28 15:48:23 +02:00
KPrasch 6509b2b3d7
Compares system time with block time for each default RPC provider. 2024-05-28 15:48:23 +02:00
KPrasch be515e26be
Relocate default RPC endpoint list to a standalone repository controlled by nucypher. 2024-05-28 15:48:23 +02:00
Kieran 48a8bf1e0f
lint 2024-05-28 15:48:23 +02:00
Kieran bd1962a58c
introduces default RPC endpoint health check utilities, and plant an initial entrypoint at node startup. 2024-05-28 15:48:23 +02:00
Kieran 2ac0aba53f
Introduce hardcoded default RPC endpoint; localize chain IDs, blockchain names to constants.py 2024-05-28 15:48:23 +02:00
derekpierre 06e56bbc72
Properly sort imports in relevant files causing the ruff CI check to fail. 2024-05-28 08:55:48 -04:00
derekpierre 0e83c1c158
Add a default freshness check for SIWE messages - this prevents perpetual reuse of the same SIWE message.
Improve auth exception messages and update tests to check for relevant messages.
Add tests for stale SIWE messages.
2024-05-16 19:46:42 -04:00
derekpierre bced969340
Update exception message to include underlying exception. 2024-05-16 18:38:35 -04:00
derekpierre d699c93bf9
Make auth tests more maintainable by improving fixture parameter usage. 2024-05-15 16:52:06 -04:00
derekpierre 00235c0dff
Check that address matches expected address for SIWE authentication. 2024-05-15 11:06:12 -04:00
derekpierre c023e924f1
Fix resolution of scheme using string and not enum. 2024-05-15 11:05:12 -04:00
derekpierre f10f9e463f
Minor cleanup. 2024-05-14 17:16:19 -04:00
derekpierre e6d1534d1f
Initial plumbing for authenticating :userAddress context variable information provided using SIWE instead of EIP712 which we've traditionally used.
Leave some room for other possibilities.
2024-05-14 16:55:14 -04:00
derekpierre f4080f6f86
Stop using deprecated method for :userAddress verification - use alternative API method. 2024-05-13 09:26:35 -04:00
KPrasch f8b2bbba9a
Bump version: 7.3.0 → 7.4.0 2024-05-13 09:25:49 -04:00
KPrasch df3b0b2666
Merge pull request #3409 from KPrasch/revoke
removes the `/revoke` endpoint
2024-05-07 09:24:45 -04:00
Kieran c529d71b35
Removal of auxilliary revocation usage. 2024-05-07 09:24:45 -04:00
KPrasch 4a413c25fc
Removes the /revoke REST endpoint. 2024-05-07 09:24:36 -04:00
derekpierre 24b548f192
Adjust logic for creating blockchain provider based on endpoint provided. 2024-04-30 09:30:15 -04:00
derekpierre 031f484b85
Remove sign_transaction and sign_message from EthereumClient - clients shouldn't do any account management/signing.
Raise exceptions from Web3Signer if used for signing - an explicit signer should be used instead of this fallback.
Remove EthereumTesterClient since no longer needed and therefore from_w3() is no longer needed either; actual signer objects are used for signing transactions/messages in tests.
2024-04-29 16:33:18 -04:00
derekpierre 60b0ad9155
Remove account management functions from Web3Signer since external blockchain clients can't actually do signing, other than in tests; better mimic real world functionality. 2024-04-29 10:34:23 -04:00
derekpierre 2b4b0ad9f5
Modify Vladimir to use InMemorySigner. 2024-04-29 10:34:18 -04:00
derekpierre 5baac93058
InMemorySigner should implement _get_signer() like other Signers and not __get_signer(). 2024-04-29 10:34:11 -04:00
derekpierre b0991441c5
Removes customized RPC clients/shims; with standardization of providers there is less need for such specialized clients.
Limit providers to only http/https.

Based on some work previously done by Kieran, but was abandoned due it becoming stale and diverging from git history.

Co-authored-by: Kieran Prasch <kieranprasch@gmail.com>
2024-04-29 10:34:10 -04:00
derekpierre 40037f22a6
Prune public chains to only the ones currently being used. 2024-04-29 10:34:00 -04:00
derekpierre f2f7c24bba
Allow duration as a parameter to make_staking_provider_reservoir function call. This call is used by Porter. 2024-04-25 10:15:56 -04:00
derekpierre 45f05e3134
Update other calls to get active providers based on duration. 2024-04-25 09:12:23 -04:00
derekpierre 74cc426cb1
Update get_active_staking_providers call for TACoApplicationAgent/TACoChildApplicationAgent to accept an optional duration parameter, with the default value being 0. 2024-04-25 09:12:18 -04:00
derekpierre 394dc6018e
Resubmit tx within `on_broadcast_failure` callback; removes the queued tx and resubmits a new tx. This prevents other queued txs for other rituals from being starved by one failing tx for a specific ritual. 2024-04-24 18:57:53 -04:00
Derek Pierre 6089db5fa8
Merge pull request #3487 from derekpierre/logging-one-more-thing
One more thing: Individual logging observers need to adhere to log levels
2024-04-24 17:12:49 -04:00
derekpierre 49e295e0e7
Log message about verified operator to debug instead of info. 2024-04-24 16:08:57 -04:00
derekpierre 27fe4c7f10
Observers themselves should adhere to log levels since other Loggers may be used which don't check log level before passing to observers. 2024-04-22 20:39:39 -04:00
derekpierre 2500fe1507
Fix inconsistent return from `sign_transaction`; either a SignedTransaction is returned or HexBytes. Reverting to lowest common denominator which is HexBytes (bytes). This issue was noticed while running the nucypher_dkg script which failed - it uses a keystore signer. 2024-04-22 14:15:28 -04:00
derekpierre 83e0ea153a
Clean up StdoutEmitter and log to the logging system where appropriate. 2024-04-19 14:59:59 -04:00
derekpierre 121bbbc4f4
Add tests for management of global observers for logging.
No-ops whenever trying to start/stop an already started/stopped global observer
Properly save and restore state within context manager for pausing logging.
2024-04-19 14:59:57 -04:00
derekpierre 47944092bd
Separate text file logs from json file logs. JSON logs are overly verbose and should only be enabled if explicitly indicated (probably for monitoring/scraping of logs), and should not be enabled by default. It's setting should be kept separate from text file logging. 2024-04-19 14:59:47 -04:00
derekpierre ba9e5c4240
Properly track observers so that the correct instances can be used for removal if necessary. 2024-04-19 11:11:31 -04:00
derekpierre fafff095db
Use a proper console logger from twisted that properly formats messages. 2024-04-19 11:11:30 -04:00
derekpierre 9d012c4fc0
Logger should limit logging by underlying observers based on log level. 2024-04-19 11:11:25 -04:00
derekpierre be76467192
Update embedded lynx contract registry based on latest lynx upgrade and updated registry from `nucypher-contracts`. 2024-04-18 13:37:30 -04:00
derekpierre 59a8901ed5
Agents need to better handle overloaded functions. Web3py does not resolve the function based on the number of args provided, so we need to resolve the function ourselves.
In some cases we've been lucky that the function we wanted to use was first to be returned instead of the other one, in which case the call will fail. This change makes the method to use more explicit by using the signature. Eventually the old function that was overloaded will be removed from the contract and is therefore no longer a problem - until then we need to properly/deterministically handle the overload case.
2024-04-18 13:37:29 -04:00
derekpierre 46b858d876
Update embedded mainnet contract registry based on updated registry from `nucypher-contracts`. This was missed from the last mainnet update but the nodes were fine because it pulls the registry from github as a priority over the embedded registry. 2024-04-18 13:37:27 -04:00
derekpierre 6064ee01b1
Remove old and no longer used code associated with operator information. 2024-04-18 13:37:26 -04:00
derekpierre ccb5a7631a
Only retrieve struct values from contract based on number of expected fields in associated python struct. This better maintains compatibility whenever the struct in the contract adds fields. 2024-04-18 13:37:25 -04:00
derekpierre 238c4cb5aa
Add TODO for usages of the stdout emitter, should these just be log messages. 2024-04-17 13:20:26 -04:00
derekpierre 1673a7e7a4
Fix incorrect typehint for return value of method for executing synchronous transactions. 2024-04-17 13:20:25 -04:00
derekpierre ba8f519d08
Check ritual status before resubmitting a tx to prevent infinite loops due to DKG ritual failures for other reasons eg. mismatch aggregated transcript from other node, timeout etc. 2024-04-17 13:20:02 -04:00
derekpierre 59bc9f8bf4
Add a default on_broadcast callback implementation that simply prints broadcast tx information, if one is not provided.
The default behaviour is to print tx info that is basically the equivalent of want a synchronous tx would print - same reason that the StdoutEmitter is used instead of the logger.
Use common utility for determining cost of broadcasted tx.
2024-04-15 13:30:58 -04:00
derekpierre 5514f57d43
Add typehint for return of _setup_async_tx_hooks method for Operator. 2024-04-15 13:30:52 -04:00
derekpierre fd4b209f9e
Fix KeyError bug when clearing cached async tx if it doesn't already exist. 2024-04-15 13:30:51 -04:00
derekpierre 43c9d92c63
Clear async tx once transaction is successfully finalized; no need to store it since data already updated on blockchain because tx was finalized. 2024-04-15 13:30:50 -04:00
derekpierre 1f4199f35b
Make data member for DKGStorage private for safety. 2024-04-15 13:30:49 -04:00
derekpierre dcb93abed8
Don't store async_txs on the ActiveRitualTracker since it only cares about events; utilize existing DKG storage for operator. This will also allow for easier logic for clearing when no longer needed by the Operator.
Modify DKGStorage to store async txs.
Update tests accordingly.
2024-04-15 13:30:47 -04:00
derekpierre c5adbfde98
Update Operator to handle the various callbacks used by async transactions for improved fault tolerance when publishing a transcript or aggregated transcript.
Implementations of the callbacks for error cases may resubmit a tx to execute for fault tolerance.
2024-04-15 13:30:42 -04:00
derekpierre 4c6b8afcc0
Add speedup strategy to the ATxM object being used since it is no longer a default strategy used by the underlying library. 2024-04-15 13:30:41 -04:00
derekpierre 14c9d49d8e
Add AsyncTxHooks helper class for defining async tx callbacks when using send_async_transaction and the atxm library.
Allow AsyncTxHooks to be specified when executing an async transaction.
2024-04-15 13:30:40 -04:00
Manuel Montenegro 0ad33b8baa
Simplify code
Co-authored-by: Derek Pierre <derek.pierre@gmail.com>
2024-04-15 17:03:29 +02:00
Manuel Montenegro c0c39c5e20
Fix typo in help
Co-authored-by: Derek Pierre <derek.pierre@gmail.com>
2024-04-15 16:59:23 +02:00
Manuel Montenegro dbce8cf09d
Add --metrics-listen-address CLI Prometheus option
This option was accidentally removed during the return of Prometheus
exporter.
2024-04-15 14:14:59 +02:00
snoppy 6a7a3bb921 chore: fix typos 2024-04-11 12:03:38 -04:00
derekpierre f4c5623653
Fix incorrect rebase change. Revert line to what it was before. 2024-04-10 09:31:01 -04:00
derekpierre f2e7e2d63d
Update tapir registry based on latest deployment to polygon amoy. 2024-04-10 09:09:23 -04:00
derekpierre 3086e7d942
Don't use ETH in text about tx cost since it could be MATIC. 2024-04-10 09:07:11 -04:00
derekpierre eae9992158
Update Lynx contract registry with latest Lynx deployment on Polygon Amoy as part of migration from Polygon Mumbai. 2024-04-10 09:04:13 -04:00
derekpierre 9dcfdf0458
Update chain information to include polygon amoy as a valid chain. 2024-04-10 09:04:09 -04:00
derekpierre 8a5aec5ca6
Rename Polygon Mumbai enum to Polygon Amoy. 2024-04-10 09:04:00 -04:00
derekpierre b771d0d198
Migrate configuration file when provided. 2024-03-25 13:43:01 -04:00
derekpierre 6f7779def3
Update embedded tapir contract registry. 2024-03-25 13:32:47 -04:00
derekpierre a4a4988ca1
Adjust call to TACoApplication.getActiveStakingProviders. Needs to be properly addressed by #3458 to take a duration value. 2024-03-25 13:32:43 -04:00
derekpierre fd08570b2f
Add additional values belonging to StakingProviderInfo for TACoChildApplicationAgent. 2024-03-25 13:32:42 -04:00
KPrasch 783664a173
handles importing of test packages in production builds 2024-03-25 13:32:36 -04:00
KPrasch edbead6791
repsond to RFCs in PR #3437:
- removes stale newsfrag
- do not return Deferred from SimpleTask.start and SimpleTask.stop
- removes eager atxm startup with ursula startup.
- remove unused token agent methods
- add spaces after periods in select logs
- more...
2024-03-25 13:32:26 -04:00
KPrasch b1fef5d6b1
removes interval parapeter from subclass constructors of SimpleTask 2024-03-25 13:32:25 -04:00
KPrasch 69bd09bfe3
crash ursula on invalid event dispatch. 2024-03-25 13:32:24 -04:00
KPrasch c16f93707a
promotes phase id to a NamedTuple. 2024-03-25 13:32:23 -04:00
KPrasch bf2dbbc2c0
respond to RFCs in PR #3437 2024-03-25 13:32:22 -04:00
KPrasch 8b4e6bf09a
unit/integration test demonstrating async tx tracking by ursula. 2024-03-25 13:32:20 -04:00
KPrasch 416164a846
integrate atxm (see original history in https://github.com/nucypher/nucypher/pull/3424, https://github.com/nucypher/atxm)
- atx integration test
- eliminate 'fire and forget'
- warp space-time
2024-03-25 13:32:19 -04:00
KPrasch a31bda8c9e
updates import for newer version of cryptography 2024-03-25 13:32:10 -04:00
KPrasch 4ae72f94ab
update local signer integration to support newer version of eth_account. 2024-03-25 13:32:09 -04:00
KPrasch 57b9ffe7ee
Bump version: 7.2.0 → 7.3.0 2024-03-25 13:31:52 -04:00
Derek Pierre 04a2b66672 Apply RFCs from #3444
Co-authored-by: David Núñez <david@nucypher.com>
2024-02-13 10:53:03 -05:00
derekpierre 9f8dfffd11 Allow EventScanner to obtain different events as part of the same call to reduce overall rpc calls. Multiple events can be obtained by one call, instead of making one getLogs call per event.
EventScanner will no longer take specified filters since more than one event type can be obtained at a time. We don't utilize event specific filters currently anyway - and we probably won't need to.
2024-02-13 10:53:03 -05:00
derekpierre 0a01fb900b Use the correct Logger class.
Use f-strings for event scanning logging.
2024-02-13 10:53:03 -05:00
derekpierre 919e5007ed Update mainnet contract registry with latest changes deployed to mainnet - getParticipants that allows for paging results. 2024-02-13 10:53:03 -05:00
derekpierre 755cbd1511 Don't reuse the same SSL context. Use a new SSL context per connection so that the ca data can be updated accordingly. 2024-02-13 10:53:03 -05:00
derekpierre d6d2f8d80c Simplify netloc replacement of request url. 2024-02-13 10:53:03 -05:00
derekpierre 29ccc48310 Use built-in ssl function for obtaining ssl certs. 2024-02-13 10:53:03 -05:00
derekpierre efd39bdc1c Don't raise when a new teacher cannot be selected from the list of known_nodes. 2024-02-13 10:53:03 -05:00
David Núñez 6b2effe664 The return of simple_cache_middleware 2024-02-13 10:53:03 -05:00
derekpierre 6545dc3e88 Make start chunk size optional and default to min chunk size unless specified otherwise. Having 20 as the default negates the initial use of min chunk size which seems like a waste. I can see a potential usage for not wanting to use the min chunk size for a specific case of scanning a large number of blocks but seems unnecessary otherwise. 2024-02-13 10:53:03 -05:00
derekpierre 19caae9a2d Fix SimpleTask to actually use class INTERVAL value instead of its own - caused EventScannerTask to use 60s instead of the 120s it had defined. 2024-02-13 10:53:03 -05:00
derekpierre 7257d4df7e Move chunk, reorg window settings to ActiveRitualTracker - more applicable there since it has context for the chain being scanned etc.
Increase reorg window to 20 since we've noticed that Polygon block reorgs can be that large (sometimes larger).
Increase min chunk size to 60. Using 10 was seemingly too small give Polygon's shorter block time.
2024-02-13 10:53:03 -05:00
derekpierre c89a5668b6 Allow caller of select_config_file to specify whether to auto-migrate config files with older versions.
By default auto migration does not happen, and the user is prompted.
During ursula run auto migration is set to true so that there are no user prompts for migration.
2024-02-13 10:53:03 -05:00
derekpierre 0b2999421b Automatically migrate configuration files to latest version.
Modify OldVersion exception to include old version number.
2024-02-13 10:53:03 -05:00
derekpierre b59978e815 Reuse response headers variable instead of using two different variables with the same value for response headers. 2024-02-13 10:53:03 -05:00
derekpierre 98b4c9db34 Clear all ritual data instead of just Ritual object when node observes that ritual is not active. 2024-02-13 10:53:03 -05:00