Skip to content
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

test(tendermint): migrate to local/offline containerized testnets #2128

Merged
merged 43 commits into from
Jul 5, 2024
Merged
Show file tree
Hide file tree
Changes from 39 commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
3d987a9
create persistent data for tendermint
onur-ozkan May 28, 2024
c7a8f64
migrate tendermint_tests to be docker tests
onur-ozkan May 29, 2024
9ee35e4
disable certain modules temporarily for development purposes
onur-ozkan May 29, 2024
335589f
run nucleus docker image
onur-ozkan May 29, 2024
16e4f53
update nucleus testnet data
onur-ozkan May 29, 2024
40d2ba5
add ticker to nucleusd container
onur-ozkan May 30, 2024
2ec84f4
dbg
onur-ozkan May 30, 2024
ef79de9
wait for specific message from nucleusd container
onur-ozkan May 30, 2024
3980ce5
fix container runner command
onur-ozkan May 30, 2024
29fd0de
update nucleusd data
onur-ozkan May 30, 2024
a86b058
Merge branch 'dev' of github.com:KomodoPlatform/komodo-defi-framework…
onur-ozkan Jun 3, 2024
8a7bea9
update atom test seeds
onur-ozkan Jun 3, 2024
867e737
add atom testnet state
onur-ozkan Jun 3, 2024
0903037
WIP: enable atom local testnet
onur-ozkan Jun 4, 2024
2b05d67
update nucleus testnet data
onur-ozkan Jun 4, 2024
4bcf052
Merge branch 'dev' of github.com:KomodoPlatform/komodo-defi-framework…
onur-ozkan Jun 6, 2024
282b450
start atom node
onur-ozkan Jun 6, 2024
e332fd3
fix various assertions
onur-ozkan Jun 6, 2024
dcb5e81
fix balance test
onur-ozkan Jun 6, 2024
0096707
update atom testnet conf
onur-ozkan Jun 6, 2024
b3c603a
migrate cosmos tx history test
onur-ozkan Jun 6, 2024
a19237b
update nucleus node data
onur-ozkan Jun 6, 2024
af75d4e
migrate `test_tendermint_withdraw_hd`
onur-ozkan Jun 6, 2024
5d1a23c
update atom testnet data
onur-ozkan Jun 6, 2024
71b2e31
run swap tests sequentially
onur-ozkan Jun 6, 2024
4f1f28e
fill hd account balance for atom
onur-ozkan Jun 6, 2024
29a7371
update atom test data
onur-ozkan Jun 6, 2024
a51895f
fix test
onur-ozkan Jun 6, 2024
9131cb6
migrate more tests
onur-ozkan Jun 7, 2024
7371a22
create `wait_tendermint_sync`
onur-ozkan Jun 7, 2024
ceac7f0
migrate more test
onur-ozkan Jun 7, 2024
a46f585
migrate orderbook test
onur-ozkan Jun 7, 2024
82d7dea
update test container usage and data
onur-ozkan Jun 10, 2024
27f5453
migrate atom<->nucleus ibc transfer tests
onur-ozkan Jun 10, 2024
e6229f3
remove entrypoint
onur-ozkan Jun 10, 2024
4e02b4d
fix clippy
onur-ozkan Jun 11, 2024
6696109
add nucleus<->eth swap coverage
onur-ozkan Jun 11, 2024
8bde022
improve container image usage
onur-ozkan Jun 12, 2024
23f2db5
use ticker variables instead of hardcoding them
onur-ozkan Jun 24, 2024
6fd189e
implement `wait_until_relayer_container_is_ready`
onur-ozkan Jul 3, 2024
edcba4b
create new ibc channels
onur-ozkan Jul 3, 2024
c9474a7
update wait_until_relayer_container_is_ready
onur-ozkan Jul 3, 2024
ef0afd4
use `localhost` instead of `0.0.0.0`
onur-ozkan Jul 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"key": "9c1e658a8e070bbd7e7cfcaa",
"addrs": []
}
263 changes: 263 additions & 0 deletions .docker/container-state/atom-testnet-data/config/app.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,263 @@
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml

###############################################################################
### Base Configuration ###
###############################################################################

# The minimum gas prices a validator is willing to accept for processing a
# transaction. A transaction's fees must meet the minimum of any denomination
# specified in this config (e.g. 0.25token1,0.0001token2).
minimum-gas-prices = "0.0025uatom"

# default: the last 362880 states are kept, pruning at 10 block intervals
# nothing: all historic states will be saved, nothing will be deleted (i.e. archiving node)
# everything: 2 latest states will be kept; pruning at 10 block intervals.
# custom: allow pruning options to be manually specified through 'pruning-keep-recent', and 'pruning-interval'
pruning = "default"

# These are applied if and only if the pruning strategy is custom.
pruning-keep-recent = "0"
pruning-interval = "0"

# HaltHeight contains a non-zero block height at which a node will gracefully
# halt and shutdown that can be used to assist upgrades and testing.
#
# Note: Commitment of state will be attempted on the corresponding block.
halt-height = 0

# HaltTime contains a non-zero minimum block time (in Unix seconds) at which
# a node will gracefully halt and shutdown that can be used to assist upgrades
# and testing.
#
# Note: Commitment of state will be attempted on the corresponding block.
halt-time = 0

# MinRetainBlocks defines the minimum block height offset from the current
# block being committed, such that all blocks past this offset are pruned
# from Tendermint. It is used as part of the process of determining the
# ResponseCommit.RetainHeight value during ABCI Commit. A value of 0 indicates
# that no blocks should be pruned.
#
# This configuration value is only responsible for pruning Tendermint blocks.
# It has no bearing on application state pruning which is determined by the
# "pruning-*" configurations.
#
# Note: Tendermint block pruning is dependant on this parameter in conunction
# with the unbonding (safety threshold) period, state pruning and state sync
# snapshot parameters to determine the correct minimum value of
# ResponseCommit.RetainHeight.
min-retain-blocks = 0

# InterBlockCache enables inter-block caching.
inter-block-cache = true

# IndexEvents defines the set of events in the form {eventType}.{attributeKey},
# which informs Tendermint what to index. If empty, all events will be indexed.
#
# Example:
# ["message.sender", "message.recipient"]
index-events = []

# IavlCacheSize set the size of the iavl tree cache (in number of nodes).
iavl-cache-size = 781250

# IAVLDisableFastNode enables or disables the fast node feature of IAVL.
# Default is false.
iavl-disable-fastnode = false

# IAVLLazyLoading enable/disable the lazy loading of iavl store.
# Default is false.
iavl-lazy-loading = false

# AppDBBackend defines the database backend type to use for the application and snapshots DBs.
# An empty string indicates that a fallback will be used.
# The fallback is the db_backend value set in Tendermint's config.toml.
app-db-backend = ""

###############################################################################
### Telemetry Configuration ###
###############################################################################

[telemetry]

# Prefixed with keys to separate services.
service-name = ""

# Enabled enables the application telemetry functionality. When enabled,
# an in-memory sink is also enabled by default. Operators may also enabled
# other sinks such as Prometheus.
enabled = false

# Enable prefixing gauge values with hostname.
enable-hostname = false

# Enable adding hostname to labels.
enable-hostname-label = false

# Enable adding service to labels.
enable-service-label = false

# PrometheusRetentionTime, when positive, enables a Prometheus metrics sink.
prometheus-retention-time = 0

# GlobalLabels defines a global set of name/value label tuples applied to all
# metrics emitted using the wrapper functions defined in telemetry package.
#
# Example:
# [["chain_id", "cosmoshub-1"]]
global-labels = [
]

###############################################################################
### API Configuration ###
###############################################################################

[api]

# Enable defines if the API server should be enabled.
enable = true

# Swagger defines if swagger documentation should automatically be registered.
swagger = true

# Address defines the API server to listen on.
address = "tcp://localhost:1318"

# MaxOpenConnections defines the number of maximum open connections.
max-open-connections = 1000

# RPCReadTimeout defines the Tendermint RPC read timeout (in seconds).
rpc-read-timeout = 10

# RPCWriteTimeout defines the Tendermint RPC write timeout (in seconds).
rpc-write-timeout = 0

# RPCMaxBodyBytes defines the Tendermint maximum request body (in bytes).
rpc-max-body-bytes = 1000000

# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk).
enabled-unsafe-cors = false

###############################################################################
### Rosetta Configuration ###
###############################################################################

[rosetta]

# Enable defines if the Rosetta API server should be enabled.
enable = false

# Address defines the Rosetta API server to listen on.
address = ":8080"

# Network defines the name of the blockchain that will be returned by Rosetta.
blockchain = "app"

# Network defines the name of the network that will be returned by Rosetta.
network = "network"

# Retries defines the number of retries when connecting to the node before failing.
retries = 3

# Offline defines if Rosetta server should run in offline mode.
offline = false

# EnableDefaultSuggestedFee defines if the server should suggest fee by default.
# If 'construction/medata' is called without gas limit and gas price,
# suggested fee based on gas-to-suggest and denom-to-suggest will be given.
enable-fee-suggestion = false

# GasToSuggest defines gas limit when calculating the fee
gas-to-suggest = 200000

# DenomToSuggest defines the defult denom for fee suggestion.
# Price must be in minimum-gas-prices.
denom-to-suggest = "uatom"

###############################################################################
### gRPC Configuration ###
###############################################################################

[grpc]

# Enable defines if the gRPC server should be enabled.
enable = true

# Address defines the gRPC server address to bind to.
address = "localhost:9090"

# MaxRecvMsgSize defines the max message size in bytes the server can receive.
# The default value is 10MB.
max-recv-msg-size = "10485760"

# MaxSendMsgSize defines the max message size in bytes the server can send.
# The default value is math.MaxInt32.
max-send-msg-size = "2147483647"

###############################################################################
### gRPC Web Configuration ###
###############################################################################

[grpc-web]

# GRPCWebEnable defines if the gRPC-web should be enabled.
# NOTE: gRPC must also be enabled, otherwise, this configuration is a no-op.
enable = true

# Address defines the gRPC-web server address to bind to.
address = "localhost:9091"

# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk).
enable-unsafe-cors = false

###############################################################################
### State Sync Configuration ###
###############################################################################

# State sync snapshots allow other nodes to rapidly join the network without replaying historical
# blocks, instead downloading and applying a snapshot of the application state at a given height.
[state-sync]

# snapshot-interval specifies the block interval at which local state sync snapshots are
# taken (0 to disable).
snapshot-interval = 1000

# snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all).
snapshot-keep-recent = 10

###############################################################################
### Store / State Streaming ###
###############################################################################

[store]
streamers = []

[streamers]
[streamers.file]
keys = ["*", ]
write_dir = ""
prefix = ""

# output-metadata specifies if output the metadata file which includes the abci request/responses
# during processing the block.
output-metadata = "true"

# stop-node-on-error specifies if propagate the file streamer errors to consensus state machine.
stop-node-on-error = "true"

# fsync specifies if call fsync after writing the files.
fsync = "false"

###############################################################################
### Mempool ###
###############################################################################

[mempool]
# Setting max-txs to 0 will allow for a unbounded amount of transactions in the mempool.
# Setting max_txs to negative 1 (-1) will disable transactions from being inserted into the mempool.
# Setting max_txs to a positive number (> 0) will limit the number of transactions in the mempool, by the specified amount.
#
# Note, this configuration only applies to SDK built-in app-side mempool
# implementations.
max-txs = 5000
17 changes: 17 additions & 0 deletions .docker/container-state/atom-testnet-data/config/client.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml

###############################################################################
### Client Configuration ###
###############################################################################

# The network chain ID
chain-id = "cosmoshub-testnet"
# The keyring's backend, where the keys are stored (os|file|kwallet|pass|test|memory)
keyring-backend = "test"
# CLI output format (text|json)
output = "text"
# <host>:<port> to Tendermint RPC interface for this chain
node = "tcp://0.0.0.0:26658"
# Transaction broadcasting mode (sync|async)
broadcast-mode = "sync"
Loading
Loading