Replies: 4 comments
-
Edits Looks good otherwise. Great job. |
Beta Was this translation helpful? Give feedback.
-
Arkhia URL's can be custom like |
Beta Was this translation helpful? Give feedback.
-
Looks great, thanks a lot so far! |
Beta Was this translation helpful? Give feedback.
-
For Arkhia , the integration with the REST API request atm is not within the path but as a |
Beta Was this translation helpful? Give feedback.
-
Context
Hedera mirror nodes are designed to provide real-time access to the Hedera network's transaction and consensus state data. However, like any distributed system, there can be reliability issues that arise from time to time. Some of the reliability problems that Hedera mirror nodes can experience include networks connectivity or data latency.
Hedera mirror nodes are public and available for everybody. If there are issue with the node, such as congestions or outages due to a massive utilization of the mirror, the solutions could have delays receiving data from them.
Hedera mirror nodes rely on network connectivity to receive updates from the Hedera network. If there are issues with the network, such as congestion or outages, the mirror node may not receive updates in a timely manner or at all. There may be delays in the propagation of data from the Hedera network to the mirror node. This can result in discrepancies between the data available on the network and the data available on the mirror node.
To address these reliability issues and to ensure that real time applications could be operative without any interruption, be scalable and provide as many infrastructure resources as necessary depending the applications necessity, we should allow the stable coin users the possibility to choose between public and private mirror nodes and RPCs.
Business goals
Given the context explained above, we need to provide the necessary features in order the stable coin users could change between public mirror nodes or RPCs and custom mirror nodes and RPCs. We will also implement necessary modifications in our current code that help us to more easily add more mirror node providers in the future when necessary.
Business requirements
Set up SCA in order to easily configure other mirror node providers
Integrate custom node provider at CLI
Integrate custom node provider at UI
Upload documentation with custom configuration
Upload documentation with Arkhia configuration
Definition
[CLI] As a user, I want to configure the accelerator to use a custom mirror nodemirror node provider
[UI] As a user, I want to configure the accelerator to use a custom mirror
[CLI] As a user, I want to configure the accelerator to use a custom RPC as an RPC provider
[UI] As a user, I want to configure the accelerator to use a custom RPC as an RPC provider
[CLI] As a user, I want to see the current mirror and RPC configuration
[UI] As a user, I want to see the current mirror and RPC configuration
Main functionality
[CLI]As a user, I want to configure the accelerator to use custom mirror node
Functional requirements
When the user open the CLI, within “Configuration” option, we will include a new option call “Mirror node configuration” after the “Manage accounts” option.
Within “Mirror node configuration” option, there will be three more for the different environments:
Testnet
Previewnet
Mainnet
When the user selects one environment to configure, it will see:
As a title:
Node configuration: Hedera mirror node (by default)
As an options:
Change current node configuration
Display configured nodes
Set up mirror node
Remove mirror node
Go Back
Change current node configuration: When the user selects this option, it should be able to choose between “Hedera mirror node” and as many nodes has been configured. The last option will be always “Go Back”. Example:
Choose you current “testnet” node configuration:
Hedera local node
Arkhia: ***1234
Go back
Display configured nodes: When the user selects this option, it should be able to see what configurations are set if the user has created some of them. Example:
Configured nodes:
Local node: http://localhost:3000
Arkhia: http://pool.arkhia.io/hedera/mainnet/api/v1 key: ***1234
Set up mirror node: When the user selects this new option some questions will be prompted:
Introduce the node name:
Introduce the url:
Introduce the port:
Do you need an api key? (Yes/No)
If so:
Introduce your http header:
Introduce your api key:
Remove mirror node: When the user selects this option, a list with all the custom nodes will be displayed. Hedera mirror node and the current node won’t be displayed. The user will be able to select one of them. When the user select the one that would be delete it, a confirming question will be prompted:
Are you sure do you want to delete “node name”?
If so, delete the node from configuration.
Go back: Go to previous menu
Non-functional requirements
When a user selects one of the custom nodes, we should configure the queries in order to point to the preconfigured node.
[UI] As a user, I want to configure the accelerator to use a custom mirror node
Functional requirements
When the user opens the UI, after connect the wallet, a “Settings” icon will be visible at the bottom left corner of the page. When the user selects this option, a new configuration page will be displayed.
Within this page, the user will be able to see what nodes are configured within the Mirror nodes tab
and the fields that allows it to add a new one. By default, default value for the dropdown will be “Testnet” but the user could choose between Testnet, Previewnet and Mainnet.
Note: Hedera mirror node will be always available and you cannot delete it.
Note: API key field won’t be necessary to be filled in order to add a new node. Add button will be disabled until name and url will be filled or if the user agree that some API key is needed, Add button will be disabled until all fields are filled.
Non-functional requirements
When a user selects one of the custom nodes, we should configure the queries in order to point to the preconfigured node.
[CLI] As a user, I want to configure the accelerator to use a custom RPC as an RPC provider
Functional requirements
The users will be able to configure where RPC queries should point, for that reason, we should give them the possibility to add as many RPC urls as necessary. Within “Configuration” section and after choosing the environment, we will add a new option called “Set up RPC”:
As an options:
Change current node configuration
Display configured nodes
Set up mirror node
Set up RPC
Remove mirror node
Go Back
When the user selects this new options, some questions will be prompted:
Introduce the RPC name:
Introduce the url:
Introduce the port:
Do you need an api key? (Yes/No)
If so:
Introduce your http header:
Introduce your api key:
Non-functional requirements
When a user selects one of the custom RPC, we should configure the queries in order to point to the preconfigured RPC.
[UI] As a user, I want to configure the accelerator to use a custom RPC as an RPC provider
When the user opens the UI, after connect the wallet, a “Settings” icon will be visible at the bottom left corner of the page. When the user selects this option, a new configuration page will be displayed.
Within this page, the users could switch between two tabs, Nodes and RPCs options, if it selects the RPCs tab the user will be able to see what RPCs are configured and the fields that allows it to add a new one. By default, default value for the dropdown will be “Testnet” but the user could choose between Testnet, Previewnet and Mainnet.
Note: Hashio RPC will be always available and you cannot delete it.
Note: API key field won’t be necessary to be filled in order to add a new node. Add button will be disabled until name and url will be filled or if the user agree that some API key is needed, Add button will be disabled until all fields are filled.
[CLI] As a user, I want to see the current mirror and RPC configuration
When the user open the CLI, currently we display the information regarding the current network. We should modify this text adding the current mirror and RPC configuration. If the user is using the public Hedera mirror we display “testnet mirror:Hedera - RPC: Hashio”, if the user has selected another one, we display the “environmentName node name” like could be: (testnet, mirror: localNode, RPC: localRPC) or (testnet, mirror: Arkhia, RPC: ArkhiaRPC).
[UI] As a user, I want to see the current mirror and RPC configuration
We will add the current mirror node configuration in order to be visible everywhere. We will add the node name next to the current environment name. In that case, the network indicator will be: “Tesnet - Local mirror - RPC: localRPC ”
Beta Was this translation helpful? Give feedback.
All reactions