-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TECHDEBT] implement ValidateConfig and ValidateGenesis in all modules #334
Comments
Hi @jessicadaugherty ! |
@deblasis Could you add a few more details (e.g. links to an example place in the code and potentially a code snippet)? I think this is a greater starter task, or some external, so we just need it to be more self explanatory before adding the |
Makes sense, I have updated the description, PTAL @Olshansk |
Thank you @deblasis! I made a few edits & clarifications myself and put it out to the community! |
… (#176) ## Description This PR introduces a simple RPC (JSONRPC) server that will be used to interact with the CLI and/or other clients ## Issue Part of Issue #112 but we decided to split the work in 2 separate PRs ## Type of change Please mark the options that are relevant. - [x] New feature, functionality or library ## List of changes - Updated node to start an RPC server if enabled via config ## Testing - [x] `make test_all` - [x] [LocalNet](https://github.com/pokt-network/pocket/blob/main/docs/development/README.md) w/ all of the steps outlined in the `README` ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have tested my changes using the available tooling - [x] If applicable, I have made corresponding changes to related local or global README - [x] If applicable, I have added new diagrams using [mermaid.js](https://mermaid-js.github.io) - [x] If applicable, I have added tests that prove my fix is effective or that my feature works * feat(RPC): scaffolding Signed-off-by: Alessandro De Blasis <[email protected]> * feat(RPC): scaffolding * feat(RPC): scaffolding Signed-off-by: Alessandro De Blasis <[email protected]> * fix(RPC): updated config handling * fix(config.proto): updated timeout type * feat(RPC): basic RPC server with naive sync TX broadcast * fix(RPC): fixed HTTP method for Health and Version routes * style(RPC): format * refactor(Utility): RPC server RoutesMap for CLI/client use * refactor(Utility): RPC server exporting RouteKey and RoutesMap for CLI/client use * feat(Utility): RPC OpenApi spec and code generation * refactor(Utility): RPC server refactoring using code generation RPC server refactoring with code generation from openapi spec * feat(Utility): Updated RPC spec * feat(Utility): Regenerated RPC boilerplate and updates * docs(Utility): RPC and node docs barebones + RPC spec notes * refactor(Shared): RPC config defaults -changing soon,I'm centralizin Signed-off-by: Alessandro De Blasis <[email protected]> * fix(Utility): RPC: updated to use test_artifacts defaults * docs(Utility): RPC and node basic docs * chore(Utility): fixed versioning schema * fix(Utility): RPC configs post-merge * feat(Consensus): configOptions * feat(P2P): configOptions * fix(Utility): RPC fix post merge * fix(Utility): RPC disabled by default because of TECHDEBT * fix(RPC): test_artifacts in runtime * fix(go.mod): tidy * fix(RPC): added imports used in codegen files * feat(RPC): config proto * feat(RPC): RPCModule and noopRpcModule * refactor(Shared): shared.Create -> shared.CreateNode * docs(RPC): updated code organization post refactoring * fix(RPC): gitignoring generated files Signed-off-by: Alessandro De Blasis <[email protected]> * refactor(Consensus): mocks with Return(nil) and not Do(...) * docs(RPC): updated changelog versions * fix(Makefile): generate_rpc_openapi * fix(Makefile): fix for git clone + make develop_test * Update rpc/v1/openapi.yaml Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/CHANGELOG.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/noop_module.go Co-authored-by: Daniel Olshansky <[email protected]> * chore(Shared): added TODOes for ValidateXXX() in modules * docs(RPC): broadcast_tx_sync summary updated * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * fix(Makefile): gitignoring generated files breaks tests fix * feat(Consensus): CurrentRound() and CurrentStep() * feat(RPC): /v1/consensus/round_state * feat(RPC): /v1/consensus/round_state handler * docs(Docs): Adding some more color config + raw_hex_bytes * chore(Runtime): comment spacing * Update runtime/docs/README.md Co-authored-by: Daniel Olshansky <[email protected]> * chore(Consensus): SetBus mock Do(func(modules.Bus) {}) -> Return() * docs(Pocket): changelog * Update app/pocket/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update app/pocket/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * docs(RPC): changelog * docs(RPC): docs TOC * docs(RPC): Transports -> Endpoints * feat(Tooling): swagger-ui Signed-off-by: Alessandro De Blasis <[email protected]> * docs(RPC): swagger ui link to editor and ref to make cmd * feat(rpcServer): rpcServer is now IntegratableModule * chore(Shared): tracking TODO (implement validations) #334 * fix(RPC): merge fix * chore(go.mod): tidy * docs(RPC): nit * fix(RPC): int64 on RoundState fields * refactor(Shared): unexporting XXModuleName * feat(node): single source of truth for version + overridable Signed-off-by: Alessandro De Blasis <[email protected]> Co-authored-by: Daniel Olshansky <[email protected]>
## Description This PR aims at introducing CLI commands relative to the Utility module: - Send - Stake - EditStake - Unstake - Unpause - ChangeParameter Consequently, it introduces an RPC server (HTTP) and the ability to "point" the CLI at specific nodes via flags Fixes [issue/112](#112) ## Type of change Please mark the options that are relevant. - [x] New feature (non-breaking change which adds functionality) ## How Has This Been Tested? - [x] `make test_all` - [x] [LocalNet](https://github.com/pokt-network/pocket/blob/main/docs/development/README.md) ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have tested my changes using the available tooling - [x] If applicable, I have made corresponding changes to related or global README - [x] If applicable, I have added added new diagrams using [mermaid.js](https://mermaid-js.github.io) - [x] If applicable, I have added tests that prove my fix is effective or that my feature works * fix(config.proto): updated timeout type * feat(RPC): basic RPC server with naive sync TX broadcast * fix(RPC): fixed HTTP method for Health and Version routes * chore(go.mod): tidy * style(RPC): format * chore(go.mod): tidy + vendor * feat(Utility): CLI RPC client function * feat(Utility): RPC defaults const * feat(Utility): GetSignBytes * feat(Utility): CLI utils * feat(Utility): stake cmd scaffolding * refactor(Utility): RPC server RoutesMap for CLI/client use * refactor(Utility): RPC server exporting RouteKey and RoutesMap for CLI/client use * feat(Utility): CLI calling updated QueryRPC to point at route from map * refactor(Utility): RPC server exporting RouteKey and RoutesMap for CLI/client use * chore(Utility): Removed TODO * fix(Utility): CLI: making use of the pwd flag * fix(Utility): CLI: code review feedback * fix(Utility): CLI custodial stake command: OutputAddr = fromAddr * refactor(Utility): CLI: refactor command bindings Also added missing functionality in commands other than Stake * fix(Utility): Fix route after merge * refactor(Utility): CLI: named return values fix * test(Utility): CLI: simplified tests for PK parsing from file * feat(Utility): RPC OpenApi spec and code generation * refactor(Utility): RPC server refactoring using code generation RPC server refactoring with code generation from openapi spec * feat(Utility): RPC OpenApi spec and code generation * feat(Utility): Updated RPC spec * feat(Utility): Regenerated RPC boilerplate and updates * docs(Utility): RPC and node docs barebones + RPC spec notes * feat(Utility): Updated RPC spec * docs(Utility): CLI docs barebones * fix(Utility): CLI: added missing message handling for account * fix(Shared): fixed RPC config * feat(Utility): CLI updated to use the generated RPC client * chore(go.mod): tidy * refactor(Utility): CLI + RPC models in server.gen.go * style(Utility): removed redundant struct definition * docs(README.md): fixed LICENSE reference * docs(README.md): updated with references to CLI, RPC and Node docs * refactor(Shared): RPC config defaults -changing soon,I'm centralizin * refactor(Shared): RPC config defaults -changing soon,I'm centralizin Signed-off-by: Alessandro De Blasis <[email protected]> * fix(Utility): RPC: updated to use test_artifacts defaults * refactor(Shared): RPC config defaults -changing soon,I'm centralizin * feat(Utility): CLI: updated to use test_artifacts default * docs(Utility): RPC and node basic docs * docs(Utility): CLI: Changelog * fix(Utility): CLI: fixed output to user. It shouldn't be logging * fix(Utility): CLI code review feedback * style(Utility): code review feedback * feat(Tooling): Updated makefile commands to better handle codegen * feat(Tooling): Updated makefile commands to better handle codegen Signed-off-by: Alessandro De Blasis <[email protected]> * fix(Utility): Fix duplicated models * chore(Utility): fixed versioning schema * feat(Utility): CLI documentation generator + first stab at docs * fix(Utility): CLI specific fixes * fix(Utility): types fixes * fix(Utility): RPC configs post-merge * feat(Consensus): configOptions * feat(P2P): configOptions * feat(Utility): CLI: using configOptions to inject PK * fix(Utility): RPC configs post-merge * feat(Consensus): configOptions * feat(P2P): configOptions * fix(Utility): RPC fix post merge * fix(Utility): RPC disabled by default because of TECHDEBT * chore(go.mod): tidy * fix(go.mod): tidy * fix(CLI): test_artifacts * fix(go.mod): tidy * fix(CLI): updated to use new typesUtil.ActorType * fix(CLI): runtime based init * fix(test_artifacts): fix * fix(CLI): runtime using WithRandomPK() * fix(CLI): fixed client-only initialization * fix(Makefile): protogen first * feat(Utility): GetActorName function (can we autogenerate these?) * fix(RPC): test_artifacts in runtime * fix(go.mod): tidy * fix(CLI): debug commands are now feature flagged * chore(go.mod): tidy * chore(CLI): git rm app/pocket/rpc/client.gen.go * chore(CLI): s/j/tx and s/prepareTx/prepareTxJson * refactor(shared): converters * fix(CLI): debug nits * refactor(CLI): confirmation and credentials * chore(CLI): removed HACK todo * fix(Makefile): premature protoc * fix(RPC): added imports used in codegen files * docs(RPC): added swagger editor link * fix(RPC): added imports used in codegen files * feat(RPC): config proto * feat(RPC): RPCModule and noopRpcModule * refactor(Shared): shared.Create -> shared.CreateNode * refactor(RPC): moved scaffolding into rpc module * fix(RPC): removed redundant file * fix(CLI): debug merge fix * docs(RPC): fixed link after refactoring * docs(RPC): updated code organization post refactoring * Update app/client/cli/utils.go Co-authored-by: Daniel Olshansky <[email protected]> * fix(RPC): gitignoring generated files * style(Persistence): reverting space change * refactor(Defaults): runtime/defaults package * chore(CLI): issue handle * chore(CLI): Issue #310 links * refactor(CLI): preallocation fix * style(CLI): oneMillion * style(CLI): s/RelayChainIDs/relayChainIDs * feat(Utility): ActorType.GetName() * chore(Utility): tracking issue #142 * chore(Utility): GetBytes -> GetCanonicalBytes * chore(CLI): actorCmd -> accountCmd * docs(CLI): fromAddr note (address currently sourced from pk) * chore(Runtime): new default value from main * refactor(CLI): moving utility functions in utils.go * chore(CLI): NewDebug -> NewDebugCommand * fix(RPC): gitignoring generated files Signed-off-by: Alessandro De Blasis <[email protected]> * refactor(Consensus): mocks with Return(nil) and not Do(...) * docs(RPC): updated changelog versions * fix(Makefile): generate_rpc_openapi * fix(Makefile): fix for git clone + make develop_test * Update rpc/v1/openapi.yaml Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/CHANGELOG.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/noop_module.go Co-authored-by: Daniel Olshansky <[email protected]> * chore(Shared): added TODOes for ValidateXXX() in modules * docs(RPC): broadcast_tx_sync summary updated * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * fix(Makefile): gitignoring generated files breaks tests fix * docs(CLI): added todos for exactArgs * chore(RPC): added types.go * refactor(RPC): sourcing defaults from defaults not test_artifacts * feat(CLI): system commands RPC🤝CLI * feat(Consensus): CurrentRound() and CurrentStep() * feat(RPC): /v1/consensus/round_state * feat(RPC): /v1/consensus/round_state handler * feat(RPC): /v1/consensus/round_state * refactor(CLI): system command typoes copypastas * feat(CLI): consensus commands -RoundState and individual ones * chore(CLI): typo * docs(CLI): short commands descriptions * docs(Config): Adding some more color around configuration * fix(CLI): tx message signing * feat(CLI): reporting statuscode and body * fix(Proto): deterministic * refactor(CLI): prepareTxJSON -> prepareTxBytes * docs(Docs): Adding some more color config + raw_hex_bytes * refactor(CLI): Stake command * fix(CLI): tx message signing * feat(CLI): reporting statuscode and body * Merge branch 'issue/utility_local_proof_of_stake_cli_CLI' into issue/utility_local_proof_of_stake_cli * feat(Tooling): swagger-ui * feat(RPC): cors feature flag * Update utility/types/message.go Co-authored-by: Daniel Olshansky <[email protected]> * chore(Runtime): comment spacing * docs(CLI): Changelog * docs(CLI): changelog * docs(RPC): changelog * chore(Runtime): comment spacing * Update runtime/docs/README.md Co-authored-by: Daniel Olshansky <[email protected]> * chore(Consensus): SetBus mock Do(func(modules.Bus) {}) -> Return() * refactor(Consensus): mocks with Return(nil) and not Do(...) Signed-off-by: Alessandro De Blasis <[email protected]> * chore(Consensus): SetBus mock Do(func(modules.Bus) {}) -> Return() Signed-off-by: Alessandro De Blasis <[email protected]> * docs(Pocket): changelog * Update app/pocket/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update app/pocket/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * docs(RPC): changelog * docs(RPC): docs TOC * docs(RPC): Transports -> Endpoints * feat(Tooling): swagger-ui Signed-off-by: Alessandro De Blasis <[email protected]> * docs(RPC): swagger ui link to editor and ref to make cmd * feat(rpcServer): rpcServer is now IntegratableModule * chore(Shared): tracking TODO (implement validations) #334 * fix(RPC): merge fix * chore(go.mod): tidy * chore(go.mod): tidy * feat(Tooling): added empty mock_module package for cold start * docs(RPC): nit * Update app/client/cli/consensus.go Co-authored-by: Daniel Olshansky <[email protected]> * docs(CLI): better commands descriptions * feat(CLI): boldText helper * style(CLI): nit: real estate * refactor(CLI): ConsensusState * docs(CLI): updated docs * docs(CLI): \n at the end of sentences in Stake command desc. * docs(CLI): regenerated docs * fix(RPC): int64 on RoundState fields * refactor(Shared): unexporting XXModuleName * feat(node): single source of truth for version + overridable Signed-off-by: Alessandro De Blasis <[email protected]> Co-authored-by: Daniel Olshansky <[email protected]>
… (#176) ## Description This PR introduces a simple RPC (JSONRPC) server that will be used to interact with the CLI and/or other clients ## Issue Part of Issue #112 but we decided to split the work in 2 separate PRs ## Type of change Please mark the options that are relevant. - [x] New feature, functionality or library ## List of changes - Updated node to start an RPC server if enabled via config ## Testing - [x] `make test_all` - [x] [LocalNet](https://github.com/pokt-network/pocket/blob/main/docs/development/README.md) w/ all of the steps outlined in the `README` ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have tested my changes using the available tooling - [x] If applicable, I have made corresponding changes to related local or global README - [x] If applicable, I have added new diagrams using [mermaid.js](https://mermaid-js.github.io) - [x] If applicable, I have added tests that prove my fix is effective or that my feature works * feat(RPC): scaffolding Signed-off-by: Alessandro De Blasis <[email protected]> * feat(RPC): scaffolding * feat(RPC): scaffolding Signed-off-by: Alessandro De Blasis <[email protected]> * fix(RPC): updated config handling * fix(config.proto): updated timeout type * feat(RPC): basic RPC server with naive sync TX broadcast * fix(RPC): fixed HTTP method for Health and Version routes * style(RPC): format * refactor(Utility): RPC server RoutesMap for CLI/client use * refactor(Utility): RPC server exporting RouteKey and RoutesMap for CLI/client use * feat(Utility): RPC OpenApi spec and code generation * refactor(Utility): RPC server refactoring using code generation RPC server refactoring with code generation from openapi spec * feat(Utility): Updated RPC spec * feat(Utility): Regenerated RPC boilerplate and updates * docs(Utility): RPC and node docs barebones + RPC spec notes * refactor(Shared): RPC config defaults -changing soon,I'm centralizin Signed-off-by: Alessandro De Blasis <[email protected]> * fix(Utility): RPC: updated to use test_artifacts defaults * docs(Utility): RPC and node basic docs * chore(Utility): fixed versioning schema * fix(Utility): RPC configs post-merge * feat(Consensus): configOptions * feat(P2P): configOptions * fix(Utility): RPC fix post merge * fix(Utility): RPC disabled by default because of TECHDEBT * fix(RPC): test_artifacts in runtime * fix(go.mod): tidy * fix(RPC): added imports used in codegen files * feat(RPC): config proto * feat(RPC): RPCModule and noopRpcModule * refactor(Shared): shared.Create -> shared.CreateNode * docs(RPC): updated code organization post refactoring * fix(RPC): gitignoring generated files Signed-off-by: Alessandro De Blasis <[email protected]> * refactor(Consensus): mocks with Return(nil) and not Do(...) * docs(RPC): updated changelog versions * fix(Makefile): generate_rpc_openapi * fix(Makefile): fix for git clone + make develop_test * Update rpc/v1/openapi.yaml Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/CHANGELOG.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/noop_module.go Co-authored-by: Daniel Olshansky <[email protected]> * chore(Shared): added TODOes for ValidateXXX() in modules * docs(RPC): broadcast_tx_sync summary updated * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * fix(Makefile): gitignoring generated files breaks tests fix * feat(Consensus): CurrentRound() and CurrentStep() * feat(RPC): /v1/consensus/round_state * feat(RPC): /v1/consensus/round_state handler * docs(Docs): Adding some more color config + raw_hex_bytes * chore(Runtime): comment spacing * Update runtime/docs/README.md Co-authored-by: Daniel Olshansky <[email protected]> * chore(Consensus): SetBus mock Do(func(modules.Bus) {}) -> Return() * docs(Pocket): changelog * Update app/pocket/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update app/pocket/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * docs(RPC): changelog * docs(RPC): docs TOC * docs(RPC): Transports -> Endpoints * feat(Tooling): swagger-ui Signed-off-by: Alessandro De Blasis <[email protected]> * docs(RPC): swagger ui link to editor and ref to make cmd * feat(rpcServer): rpcServer is now IntegratableModule * chore(Shared): tracking TODO (implement validations) #334 * fix(RPC): merge fix * chore(go.mod): tidy * docs(RPC): nit * fix(RPC): int64 on RoundState fields * refactor(Shared): unexporting XXModuleName * feat(node): single source of truth for version + overridable Signed-off-by: Alessandro De Blasis <[email protected]> Co-authored-by: Daniel Olshansky <[email protected]>
## Description This PR aims at introducing CLI commands relative to the Utility module: - Send - Stake - EditStake - Unstake - Unpause - ChangeParameter Consequently, it introduces an RPC server (HTTP) and the ability to "point" the CLI at specific nodes via flags Fixes [issue/112](#112) ## Type of change Please mark the options that are relevant. - [x] New feature (non-breaking change which adds functionality) ## How Has This Been Tested? - [x] `make test_all` - [x] [LocalNet](https://github.com/pokt-network/pocket/blob/main/docs/development/README.md) ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have tested my changes using the available tooling - [x] If applicable, I have made corresponding changes to related or global README - [x] If applicable, I have added added new diagrams using [mermaid.js](https://mermaid-js.github.io) - [x] If applicable, I have added tests that prove my fix is effective or that my feature works * fix(config.proto): updated timeout type * feat(RPC): basic RPC server with naive sync TX broadcast * fix(RPC): fixed HTTP method for Health and Version routes * chore(go.mod): tidy * style(RPC): format * chore(go.mod): tidy + vendor * feat(Utility): CLI RPC client function * feat(Utility): RPC defaults const * feat(Utility): GetSignBytes * feat(Utility): CLI utils * feat(Utility): stake cmd scaffolding * refactor(Utility): RPC server RoutesMap for CLI/client use * refactor(Utility): RPC server exporting RouteKey and RoutesMap for CLI/client use * feat(Utility): CLI calling updated QueryRPC to point at route from map * refactor(Utility): RPC server exporting RouteKey and RoutesMap for CLI/client use * chore(Utility): Removed TODO * fix(Utility): CLI: making use of the pwd flag * fix(Utility): CLI: code review feedback * fix(Utility): CLI custodial stake command: OutputAddr = fromAddr * refactor(Utility): CLI: refactor command bindings Also added missing functionality in commands other than Stake * fix(Utility): Fix route after merge * refactor(Utility): CLI: named return values fix * test(Utility): CLI: simplified tests for PK parsing from file * feat(Utility): RPC OpenApi spec and code generation * refactor(Utility): RPC server refactoring using code generation RPC server refactoring with code generation from openapi spec * feat(Utility): RPC OpenApi spec and code generation * feat(Utility): Updated RPC spec * feat(Utility): Regenerated RPC boilerplate and updates * docs(Utility): RPC and node docs barebones + RPC spec notes * feat(Utility): Updated RPC spec * docs(Utility): CLI docs barebones * fix(Utility): CLI: added missing message handling for account * fix(Shared): fixed RPC config * feat(Utility): CLI updated to use the generated RPC client * chore(go.mod): tidy * refactor(Utility): CLI + RPC models in server.gen.go * style(Utility): removed redundant struct definition * docs(README.md): fixed LICENSE reference * docs(README.md): updated with references to CLI, RPC and Node docs * refactor(Shared): RPC config defaults -changing soon,I'm centralizin * refactor(Shared): RPC config defaults -changing soon,I'm centralizin Signed-off-by: Alessandro De Blasis <[email protected]> * fix(Utility): RPC: updated to use test_artifacts defaults * refactor(Shared): RPC config defaults -changing soon,I'm centralizin * feat(Utility): CLI: updated to use test_artifacts default * docs(Utility): RPC and node basic docs * docs(Utility): CLI: Changelog * fix(Utility): CLI: fixed output to user. It shouldn't be logging * fix(Utility): CLI code review feedback * style(Utility): code review feedback * feat(Tooling): Updated makefile commands to better handle codegen * feat(Tooling): Updated makefile commands to better handle codegen Signed-off-by: Alessandro De Blasis <[email protected]> * fix(Utility): Fix duplicated models * chore(Utility): fixed versioning schema * feat(Utility): CLI documentation generator + first stab at docs * fix(Utility): CLI specific fixes * fix(Utility): types fixes * fix(Utility): RPC configs post-merge * feat(Consensus): configOptions * feat(P2P): configOptions * feat(Utility): CLI: using configOptions to inject PK * fix(Utility): RPC configs post-merge * feat(Consensus): configOptions * feat(P2P): configOptions * fix(Utility): RPC fix post merge * fix(Utility): RPC disabled by default because of TECHDEBT * chore(go.mod): tidy * fix(go.mod): tidy * fix(CLI): test_artifacts * fix(go.mod): tidy * fix(CLI): updated to use new typesUtil.ActorType * fix(CLI): runtime based init * fix(test_artifacts): fix * fix(CLI): runtime using WithRandomPK() * fix(CLI): fixed client-only initialization * fix(Makefile): protogen first * feat(Utility): GetActorName function (can we autogenerate these?) * fix(RPC): test_artifacts in runtime * fix(go.mod): tidy * fix(CLI): debug commands are now feature flagged * chore(go.mod): tidy * chore(CLI): git rm app/pocket/rpc/client.gen.go * chore(CLI): s/j/tx and s/prepareTx/prepareTxJson * refactor(shared): converters * fix(CLI): debug nits * refactor(CLI): confirmation and credentials * chore(CLI): removed HACK todo * fix(Makefile): premature protoc * fix(RPC): added imports used in codegen files * docs(RPC): added swagger editor link * fix(RPC): added imports used in codegen files * feat(RPC): config proto * feat(RPC): RPCModule and noopRpcModule * refactor(Shared): shared.Create -> shared.CreateNode * refactor(RPC): moved scaffolding into rpc module * fix(RPC): removed redundant file * fix(CLI): debug merge fix * docs(RPC): fixed link after refactoring * docs(RPC): updated code organization post refactoring * Update app/client/cli/utils.go Co-authored-by: Daniel Olshansky <[email protected]> * fix(RPC): gitignoring generated files * style(Persistence): reverting space change * refactor(Defaults): runtime/defaults package * chore(CLI): issue handle * chore(CLI): Issue #310 links * refactor(CLI): preallocation fix * style(CLI): oneMillion * style(CLI): s/RelayChainIDs/relayChainIDs * feat(Utility): ActorType.GetName() * chore(Utility): tracking issue #142 * chore(Utility): GetBytes -> GetCanonicalBytes * chore(CLI): actorCmd -> accountCmd * docs(CLI): fromAddr note (address currently sourced from pk) * chore(Runtime): new default value from main * refactor(CLI): moving utility functions in utils.go * chore(CLI): NewDebug -> NewDebugCommand * fix(RPC): gitignoring generated files Signed-off-by: Alessandro De Blasis <[email protected]> * refactor(Consensus): mocks with Return(nil) and not Do(...) * docs(RPC): updated changelog versions * fix(Makefile): generate_rpc_openapi * fix(Makefile): fix for git clone + make develop_test * Update rpc/v1/openapi.yaml Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/CHANGELOG.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/noop_module.go Co-authored-by: Daniel Olshansky <[email protected]> * chore(Shared): added TODOes for ValidateXXX() in modules * docs(RPC): broadcast_tx_sync summary updated * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update rpc/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * fix(Makefile): gitignoring generated files breaks tests fix * docs(CLI): added todos for exactArgs * chore(RPC): added types.go * refactor(RPC): sourcing defaults from defaults not test_artifacts * feat(CLI): system commands RPC🤝CLI * feat(Consensus): CurrentRound() and CurrentStep() * feat(RPC): /v1/consensus/round_state * feat(RPC): /v1/consensus/round_state handler * feat(RPC): /v1/consensus/round_state * refactor(CLI): system command typoes copypastas * feat(CLI): consensus commands -RoundState and individual ones * chore(CLI): typo * docs(CLI): short commands descriptions * docs(Config): Adding some more color around configuration * fix(CLI): tx message signing * feat(CLI): reporting statuscode and body * fix(Proto): deterministic * refactor(CLI): prepareTxJSON -> prepareTxBytes * docs(Docs): Adding some more color config + raw_hex_bytes * refactor(CLI): Stake command * fix(CLI): tx message signing * feat(CLI): reporting statuscode and body * Merge branch 'issue/utility_local_proof_of_stake_cli_CLI' into issue/utility_local_proof_of_stake_cli * feat(Tooling): swagger-ui * feat(RPC): cors feature flag * Update utility/types/message.go Co-authored-by: Daniel Olshansky <[email protected]> * chore(Runtime): comment spacing * docs(CLI): Changelog * docs(CLI): changelog * docs(RPC): changelog * chore(Runtime): comment spacing * Update runtime/docs/README.md Co-authored-by: Daniel Olshansky <[email protected]> * chore(Consensus): SetBus mock Do(func(modules.Bus) {}) -> Return() * refactor(Consensus): mocks with Return(nil) and not Do(...) Signed-off-by: Alessandro De Blasis <[email protected]> * chore(Consensus): SetBus mock Do(func(modules.Bus) {}) -> Return() Signed-off-by: Alessandro De Blasis <[email protected]> * docs(Pocket): changelog * Update app/pocket/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * Update app/pocket/doc/README.md Co-authored-by: Daniel Olshansky <[email protected]> * docs(RPC): changelog * docs(RPC): docs TOC * docs(RPC): Transports -> Endpoints * feat(Tooling): swagger-ui Signed-off-by: Alessandro De Blasis <[email protected]> * docs(RPC): swagger ui link to editor and ref to make cmd * feat(rpcServer): rpcServer is now IntegratableModule * chore(Shared): tracking TODO (implement validations) #334 * fix(RPC): merge fix * chore(go.mod): tidy * chore(go.mod): tidy * feat(Tooling): added empty mock_module package for cold start * docs(RPC): nit * Update app/client/cli/consensus.go Co-authored-by: Daniel Olshansky <[email protected]> * docs(CLI): better commands descriptions * feat(CLI): boldText helper * style(CLI): nit: real estate * refactor(CLI): ConsensusState * docs(CLI): updated docs * docs(CLI): \n at the end of sentences in Stake command desc. * docs(CLI): regenerated docs * fix(RPC): int64 on RoundState fields * refactor(Shared): unexporting XXModuleName * feat(node): single source of truth for version + overridable Signed-off-by: Alessandro De Blasis <[email protected]> Co-authored-by: Daniel Olshansky <[email protected]>
Objective
This issue tends to track the implementation of the validations that are currently marked as TODOs without a reference to any actual task.
Specifically, all modules that implement
ConfigurableModule
and/orGenesisDependentModule
have aValidateConfig(Config) error
and/or aValidateGenesis(GenesisState) error
method.An example of a valid implementation that could apply to all modules is:
Here, we are simply verifying that the configuration for the module is set, but we could also validate the individual values such as
PostgresUrl
(for which we expect a PostgreSQL connection string) by replacing// additional validations
in the example above with something similar to:The other obvious ones are port numbers (which naturally have lower and upper bounds), paths that must be valid, etc.
Clearly, it's also possible that a particular configuration currently doesn't have any validation rule. It might or might not be defined in the future.
Designing and defining how we address (or not) existing values and future-proofing configs we will add in the future is part of the task.
Origin Document
https://github.com/pokt-network/pocket/pull/176/files#r1012343547
Goals
Config
andGenesis
validationConfigurableModule
and/orGenesisDependentModule
Deliverable
Config
andGenesis
in every respective moduleNon-goals / Non-deliverables
General issue deliverables
[Required] Testing Methodology
make test_all
LocalNet
is still functioning correctly by following the instructions at docs/development/README.mdmake test_configs
to validate all non-genesis configsmake test_genesis
to validate all genesis configurationsCreator: @deblasis
Co-Owners: @Olshansk
The text was updated successfully, but these errors were encountered: