INTERX is an interchain engine, proxy, load balancer & security gateway service for communication between backend and frontend.
It will connect to the node using the GRPC endpoint as well as the RPC endpoint (Tendermint RPC
).
All files in the KIRA releases are always signed with cosign and listed with a corresponding SHA256
checksum. You should NEVER install anything on your machine unless you verified integrity of the files!
To learn more about how to install cosign and verify integrity of files click here
Essential dependencies and tools required to build INTERX can be found here. Make sure you run prerequisites-commands successfully before you continue with local development or further installation.
Binary (interxd
) will be installed in the $GOBIN
directory, please make sure to add it to your system PATH
.
cd $HOME && rm -fvr ./interx && INTERX_BRANCH="<branch-name-or-hash>" && \
git clone https://github.com/KiraCore/interx.git -b $INTERX_BRANCH && \
cd ./interx && chmod -R 777 ./scripts && \
make install && echo "SUCCESS" || echo "FAILED"
Simple start:
interxd init
interxd start
Generate configuration file.
Parameters:
config
- The interx configuration file path. (default = "./config.json")serve_https
- https or http. (default = false)grpc
- The grpc endpoint of the sekaid. (default = "dns:///0.0.0.0:9090")rpc
- The tendermint rpc endpoint of the sekaid (default = "http://0.0.0.0:26657")port
- The interx port. (default = "11000")signing_mnemonic
- The mnemonic file path or word seeds for interx singing service. (deafult = auto generated word seeds)status_sync
- The time in seconds and INTERX syncs node status. (deafult = 5)cache_dir
- The interx cache directory path. (deafult = "cache")max_cache_size
- The maximum cache size. (default = "2GB")caching_duration
- The caching clear duration in seconds. (deafult = 5)download_file_size_limitation
- The maximum download file size. (default = "10MB")faucet_mnemonic
- The mnemonic file path or word seeds for faucet service. (deafult = auto generated word seeds)faucet_time_limit
- The claim time limitation in seconds. (default = 20)
Start interx service.
Parameters:
config
- The interx configuration file path. (default = "./config.json")
Configurations are available using config.json
.
The 24-words seed string or the file path to the mnemonic file. This is for generating interx priv/pub keys which will be used for response signing.
"mnemonic": "swap exercise equip shoot mad inside floor wheel loan visual stereo build frozen always bulb naive subway foster marine erosion shuffle flee action there"
"mnemonic": "interx.mnemonic"
Cache configurations.
Interx has a feature to sync node status.
status_sync
refers the time in seconds and INTERX syncs node status every status_sync
seconds.
"status_sync": 5
Interx has a caching feature.
cache_dir
refers the cache directory.
"cache_dir": "cache"
Interx has a gabage collection feature.
max_cache_size
refers the maximum cache size. If cache size is over maximum cache size, it will remove random caches. (it remains 90% of maximum cache size)
"max_cache_size": "2 GB"
Interx has a gabage collection feature.
caching_duration
refers the caching clear duration in seconds
"caching_duration": 10
Interx has a download feature.
download_file_size_limitation
refers the maximum download file size.
"download_file_size_limitation": "10 MB"
Interx has a faucet feature.
mnemonic
refers the 24-words seed string or the file path to the mnemonic file.
It will be used to generate faucet account priv/pub keys and address.
"mnemonic": "equip exercise shoot mad inside floor wheel loan visual stereo build frozen potato always bulb naive subway foster marine erosion shuffle flee action there"
"mnemonic": "faucet.mnemonic"
faucet_amounts
refers the faucet amount for each tokens.
"faucet_amounts": {
"stake": 100000,
"validatortoken": 100000,
"ukex": 100000
},
faucet_minimum_amounts
refers the faucet minimum amount for each tokens.
"faucet_minimum_amounts": {
"stake": 100,
"validatortoken": 100,
"ukex": 100
},
fee_amounts
refers the fee amount for faucet feature.
For stake
token faucet, we can use different coins for fee. E.g. we can use ukex
for stake
token faucet.
"fee_amounts": {
"stake": "1000ukex",
"validatortoken": "1000ukex",
"ukex": "1000ukex"
}
time_limit
refers the claim time limitation in seconds.
Users can re-request faucet after time_limit
seconds.
"time_limit": 20
rpc
refers the RPC endpoint configurations.
API
refers the configurations for each endpoint.
GET
refers the configurations for each GET
endpoint.
"GET": {
"/api/cosmos/status": {
"rate_limit": 0.1,
"auth_rate_limit": 1,
"caching_duration": 30
},
"/api/cosmos/bank/supply": {
"disable": true,
"auth_rate_limit": 1,
"caching_disable": true,
"caching_duration": 30
}
},
disable
refers the options to disable the endpoint.
"disable": true
rate_limit
refers the rate limit for each endpoint.
"rate_limit": 0.1
auth_rate_limit
refers the auth rate limit for each endpoint.
"auth_rate_limit": 1
caching_disable
refers the option to disable caching feature for each endpoint.
"caching_disable": true
caching_duration
refers the customized caching duration time in seconds for each endpoint.
"caching_duration": 30
POST
refers the configurations for each POST
endpoint.
This is the same as GET
configurations.
"POST": {
"/api/cosmos/txs": {
"disable": false,
"rate_limit": 0.1
}
}
INTERX connects to sekai using following ports.
9090
: Connect to the GRPC endpoint for the node.26657
: Connect to the Tendermint RPC endpoint for the node.
-
INTERX uses
http
protocol by default. It's possible to confighttp
setting usingSERVE_HTTP
(default = true) env variable. -
INTERX uses
11000
port by default. It's possible to configport
setting usingPORT
(deafult = 11000) env variable.
Query functions metadata for sekai
.
Query functions metadata for interx
.
Query available RPC methods interx
provides.
QueryStatus is a function to query the node status.
QueryAccount is a function to query the account info.
address
: (string
) The account address.
GET http://0.0.0.0:11000/api/cosmos/auth/accounts/kira1gaadckc6g8ne62dzmscgyqkx3sd5p26wrapekd
QueryBalance is a function to query the account balances.
address
: (string
) The account address.
GET http://0.0.0.0:11000/api/cosmos/bank/balances/kira1gaadckc6g8ne62dzmscgyqkx3sd5p26wrapekd
QueryTransactionHash is a function to query transaction details from transaction hash.
hash
: (string
) The transaction hash. (e.g. 0x20.....)
Faucet is a function to claim tokens to the account for free. Returns the available faucet amount when 'claim' and 'token' is unset.
claim
: (string
,optional
) The claim address.token
: (string
,optional
) The claim token.
GET http://0.0.0.0:11000/api/faucet GET http://0.0.0.0:11000/api/faucet?claim=kira1kdnep4lm3z6yd3pah0rzfu3dvudgwfjejs9ans&token=stake
Withdraws is a function to query withdraw transactions of the account.
account
: (string
) The Kira account address.type
: (string
,optional
) The transaction type.max
: (int
,optional
) The maximum number of the results. (1 ~ 1000)last
: (string
,optional
) The last transaction hash.
Deposits is a function to query deposit transactions of the account.
account
: (string
) The Kira account address.type
: (string
,optional
) The transaction type.max
: (int
,optional
) The maximum number of the results. (1 ~ 1000)last
: (string
,optional
) The last transaction hash.
GET http://0.0.0.0:11000/api/deposits?account=kira1h9s2k2s9624kdghp5ztcdgnausg77rdj9cyat6&type=Send
QueryDataReferenceKeys is a function to query data reference keys with pagination.
limit
: (number
) The limit of the query results. (like page size)offset
: (number
) The offset of the query results. (like page number)count_total
: (bool
,optional
) The option to return total count of data reference keys.
GET http://0.0.0.0:11000/api/kira/gov/data_keys?limit=2&offset=0&count_total=true
QueryDataReference is a function to query data reference by a key.
key
: (string
) The data reference key.
GET http://0.0.0.0:11000/api/kira/gov/data/data_reference_key
Download is a function to download a data reference or arbitrary data.
module
: (string
) The module name. (e.g. DRR for data reference registry.)key
: (string
) The reference key. (It saves reference data with hashed name. e.g. 2CEE6B1689EDDDD6F08EB1EAEC7D3C4E.)
GET http://0.0.0.0:11000/download/DRR/2CEE6B1689EDDDD6F08EB1EAEC7D3C4E
Broadcast is a function to broadcast signed transaction.
tx
: (object
) The signed transaction to be broadcasted.mode
: (string
) The transaction broadcast mode. (block, sync, async)
POST http://0.0.0.0:11000/api/cosmos/txs
{
"tx": {
"body": {
"messages": [
{
"@type": "/cosmos.bank.v1beta1.MsgSend",
"from_address": "kira1rsgnkecqgq575ynn6rczd96kc23uwtruqx9m0m",
"to_address": "kira1h9s2k2s9624kdghp5ztcdgnausg77rdj9cyat6",
"amount": [
{
"denom": "ukex",
"amount": "250"
}
]
}
],
"memo": "",
"timeout_height": "0",
"extension_options": [],
"non_critical_extension_options": []
},
"auth_info": {
"signer_infos": [
{
"public_key": {
"secp256k1": "Alm0A4BIQyUWy8KXjP1BRMePguZWgFKQa5hzzwRlu3I8"
},
"mode_info": {
"single": {
"mode": "SIGN_MODE_DIRECT"
}
},
"sequence": "0"
}
],
"fee": {
"amount": [],
"gas_limit": "200000"
}
},
"signatures": [
"0BsM4jdGj/qqgtzMaVZkhDZguX6ol6hL18KxR17yr60MqW9yMNMA8bCwonLEPjSL0PgCzVCll5V9tlfAlKak1g=="
]
},
"mode": "block"
}
property | type | description |
---|---|---|
moniker | string |
Identifies your name as seen on the leaderboard table |
description | string |
Longer description of your node |
website | string |
URL to the validator website |
avatar | string |
URL to image or gif |
social | string |
URL to any social profile such as tweeter or telegram |
contact | string |
Email address or URL to a submission form |
validator-node-id | string |
node id of your validator node (required if you want your node to be present in the network visualizer) |
sentry-node-id | string |
comma separated list of sentry node ids (required if you want your nodes to be present in the network visualizer) |
- caching_blocks: integer defining number of blocks that the response data will be preserved
- caching_time: integer defining time in seconds that the response data will be preserved for
- caching_enabled: boolean if caching is enabled or not
Here
0
represents no caching,-1
represents infinit caching,positive integer
represetns the caching time or number of blocks Remember this settings when you set/update manually fromconfig.json
.
Additionally config.json
file contains cache-size-limit
config param which represents the cache size limit in bytes. If cache reaches the limit, it will randomly delete folders/files.
All caching configurations are set in config.json
file.
config.json
file includes rpc_methods
field and there you can set/update caching config of each endpoint.