I'm trying to follow this tutorial and I have a virtual machine running an Indy pool (ip: 192.168.15.177 internal net: 10.217.0.18). It is a simple docker command to run the pool in the VM:
docker build -f ci/indy-pool.dockerfile -t indy_pool .
docker run -itd -p 9701-9708:9701-9708 indy_pool
In my local workstation, I try to run the code present in the link write_did.py, which call a functions to access the pool with the genesis transactions and it has the pool_ip:
def pool_genesis_txn_data():
pool_ip = environ.get("TEST_POOL_IP", "192.168.15.177")
return "\n".join([
# Gen transactions
])
But after a moment, I get a PoolLedgerTimeout error, which is described as:
Make sure that the pool of local nodes in Docker is running on the same ip/ports as in the docker_pool_transactions_genesis (for further details see How to start local nodes pool with docker)
I wonder how the access the virtual machine since the router translates the ip: 192.168.15.177 to the internal net: 10.217.0.18. Looking at the documentation, I didn't find anything similar to solve this problem.
My docker container is running at:
my docker container
Lets look for the genesis.txn file:
code i ran
in this folder you have genesis.txn you can run:
and get the genesis.txn (note that every ip address is 127.0.0.1 for nodes and clients so i would have to set my TEST_POOL_IP as 127.0.0.1):
My genesis
If you want to check the ledger connection from your local machine you can use indy-cli, this is good if you want to know the problem is not with the ledger but the python code.
indy-cli command to check out if your local machine is connected to the ledger (through docker):
if you see this as the output, then you have successfully connected to the ledger from your local machine.
So your pool_ip parameter might be wrong, also the
"\n".join()part requires the genesis file inside join statement as seen in hereBut if i were you i would first check if the connection is possible from the indy-cli to see if the pool is created properly.