LocalSecret - Devnet docker
A local, instant, zero-config Secret Network blockchain.
What Is LocalSecret?
LocalSecret is a complete Secret Network testnet and ecosystem containerized with Docker. It simplifies the way secret contract developers test their contracts in a sandbox before they deploy them on a testnet or mainnet.
LocalSecret comes preconfigured with opinionated, sensible defaults for standard testing environments. If other projects mention testing on LocalSecret, they are referring to the settings defined in this repo.
Advantages Of LocalSecret Vs. A Public Testnet
Easily modifiable world states
Quick to reset for rapid iterations
Simple simulations of different scenarios
Controllable validator behavior
Prerequisites
Supported known architectures: x86_64, amd64
Install LocalSecret
Start LocalSecret
You've now officially created a local Secret Network testnet with chain-id secretdev-1
. 🎉
Your environment now contains:
Protocol | Endpoint | Usage |
---|---|---|
RPC | http://localhost:26657 |
|
gRPC-web | http://localhost:9091 |
|
SCRT Faucet | http://localhost:5000 | To get SCRT |
LCD | http://localhost:1317 |
|
You can also use docker run --rm
to launch LocalSecret. This will delete the container once you exit the terminal, but it also means that you can't edit the node's config as stopping the container automatically deletes it.
Usage
Here are some examples of how to use LocalSecret with secretcli
, secret.js
, and Keplr
.
Access And Configure Secretcli
To access secretcli
from inside the docker container:
To configure & test your local secretcli binary:
The environment variable SGX_MODE=SW
must be applied when using a local secretcli
binary.
Faucet (AKA Getting SCRT)
To send some SCRT to the example secret address secret1e6mqxtwgaps7vz3qfa3fcekhh7a02hvfjvtqpt
we have to options:
Using The Faucet On Port 5000
The faucet drips 1000 SCRT at a time.
Using A Genesis Account
Inside the docker container there are accounts a
, b
, c
& d
that are pre-seeded with SCRT and can be used to send some to your address.
Connect To LocalSecret With secret.js
Connect to the chain through LocalSecret's LCD endpoint.
npm i secretjs
or yarn add secretjs
, then:
Keplr
To add a custom chain to Keplr, use this code:
Different instances of LocalSecret need to be re-added to Keplr, so you need to first delete the old LocalSecret from Keplr and then re-run this^ code to add the current LocalSecret.
Configure LocalSecret
Modifying Node Configuration
You can modify the node configuration of your validator in the ~/.secretd/config/config.toml
and ~/.secretd/config/app.toml
files inside the container.
To enter the docker container to access them, run:
You can then use commands like sed
& perl
to edit these files, or install text editors like vim
& nano
using apt install -y vim nano
.
Applying The Changes
To apply changes that are made to the config file, restart LocalSecret by running:
Speed Up Block Time
LocalSecret is often used alongside a script written with the secret.js as a convenient way to do integration tests. You can greatly improve the experience by speeding up the block time.
To decrease block times, run LocalSecret with the FAST_BLOCKS=true
environment varibale:
To complement this, when testing with secret.js you can lower broadcastCheckIntervalMs
to 100
from the default of 6000
(example).
Accounts
LocalSecret is pre-configured with one validator and 4 accounts with SCRT balances. You can import them into your own testing environment for easier prototyping.
Account | Address | Mnemonic |
---|---|---|
a |
|
|
b |
|
|
c |
|
|
d |
|
|
Last updated