Currently, the public Basin testnet is going through upgrades, so it is not usable. Instead, you must use a local-only setup (localnet). This guides walks through how to do this and troubleshooting steps.


Local development

First, we must download the ipc repo, which is effectively the Basin network.

git clone <https://github.com/textileio/ipc>
cd ipc

YOU MUST use the bcalza/basin branch! This has changes that tooling below is dependent on, so make sure you its checked out before running subsequent steps. Also, a dependency needs to be updated for things to compile correctly.

git checkout bcalza/basin
cargo update time

Then, navigate to the scripts folder, which is where local-only network scripts will help start up a Dockerized local network. Here, there are two scripts we need to run in order to get the network going.

cd scripts/deploy_subnet_no_parent

There are quite a few setup steps needed. Follow everything in the Dependencies section of the repos README: here.

Once you run through those, we can run the setup script, which will create a configuration file and wallets that are used during network initialization.

sh setup.sh

Once that finishes, start the localnet network. This will take a bit of time and is CPU intensive, but it’ll spin up the Dockerized nodes and log the RPCs plus wallets/private keys that are usable.

sh start.sh

For example, the environment should look something like this—the only thing that will be different are the accounts and keys logged at the end.

############################
#                          #
# IPC deployment ready! 🚀 #
#                          #
############################
Subnet ID:
/r314159/t410f726d2jv6uj4mpkcbgg5ndlpp3l7dd5rlcpgzkoi

Chain ID:
2022913529944675

Object API:
<http://localhost:8001>
<http://localhost:8002>
<http://localhost:8003>

IPFS API:
<http://localhost:5001>
<http://localhost:5002>
<http://localhost:5003>

ETH API:
<http://localhost:8545>
<http://localhost:8645>
<http://localhost:8745>

CometBFT API:
<http://localhost:26657>
<http://localhost:26757>
<http://localhost:26857>

Accounts:
t410fexcq7znqrglifjfcc2is4efrvbmfxdufr6le4ui: 1000000000000000000 coin units
t410fdziizslqdbyttvkwfdlgx4qvy7cpagpxqmxf7di: 1000000000000000000 coin units
t410f4gh5y26e3bc7k644xjtfkfaw4ugsq6zqr4cafpy: 1000000000000000000 coin units
t410fleb5vdgdryc4jzi5wjxxrhwxxpqtaszeki4fn6q: 1000000000000000000 coin units

Private keys (hex ready to use with ADM SDK/CLI):
1343cbdbf7a42d6a6e135bc32073cd881c8326b57063d49bf7d10af8872052ec
87320e022341f35c053f15dda33d81b98871193362f08815b52156541c635695
d724bbf005b05f20207e0e0c94444194e92c20d5efd1081092958d72d7a94ae9

Tooling

There are a few ways to build on Basin:

  1. Rust SDK & CLI: https://github.com/textileio/basin
  2. S3 adapter: https://github.com/textileio/basin-s3