stack-orchestrator/app/data/stacks/fixturenet-payments
Nabarun Gogoi 4a90cedeb2
Run multiple Ponder indexers in payment stack (#588)
* Separate ponder indexer and ponder watcher and add second ponder indexer

* Handle review changes

* Update config to point ponder watcher to indexer 2 to indexer 1

* Update Ponder demo

* Use deployed ERC20 contract in second Ponder indexer

* Add order by timestamp in Ponder watcher app entities query

* Upgrade go-nitro version to v0.1.2-ts-port-0.1.9

* Decrease Ponder start block to process contract transfer event at deployment

---------

Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
2023-10-19 12:26:10 +05:30
..
mobymask-demo.md Run multiple Ponder indexers in payment stack (#588) 2023-10-19 12:26:10 +05:30
ponder-demo.md Run multiple Ponder indexers in payment stack (#588) 2023-10-19 12:26:10 +05:30
README.md Run multiple Ponder indexers in payment stack (#588) 2023-10-19 12:26:10 +05:30
stack.yml Run multiple Ponder indexers in payment stack (#588) 2023-10-19 12:26:10 +05:30

fixturenet-payments

Instructions to setup and deploy an end-to-end fixturenet-payments stack, on a local machine. Some tips are included for running on a remote cloud machine.

Setup

Clone required repositories:

laconic-so --stack fixturenet-payments setup-repositories --pull

Build the container images:

laconic-so --stack fixturenet-payments build-containers

Deploy

Deploy the stack:

laconic-so --stack fixturenet-payments deploy --cluster payments up
# Exposed on host ports:
# 32***: geth in statediffing mode and ipld-eth-server(s)
# 4005: in-process go-nitro node's RPC endpoint
# 3005: in-process go-nitro node's p2p TCP endpoint
# 5005: in-process go-nitro node's p2p WS endpoint
# 4006: out-of-process go-nitro node's RPC endpoint
# 3006: out-of-process go-nitro node's p2p TCP endpoint
# 5006: out-of-process go-nitro node's p2p WS endpoint
# 15432: MobyMask v3 watcher's db endpoint
# 3001: MobyMask v3 watcher endpoint
# 9090: MobyMask v3 watcher relay node endpoint
# 8080: MobyMask snap
# 3004: MobyMask v3 app
# 42070: Ponder indexer-1
# 42071: Ponder indexer-2
# 42069: Ponder watcher

If running in the cloud, ensure all the of the above ports are open. The geth port can be retrieved with:

docker port payments-fixturenet-eth-geth-1-1 8545

Then for every port above, run each line in a new terminal window (or use screen):

ssh -L 4005:localhost:4005 user@<your-ip>
ssh -L 5005:localhost:5005 user@<your-ip>
ssh -L 8081:localhost:8081 user@<your-ip>
# ... and so on for every port

This will allow you to access the entirety of the app as if it were running locally.

Demo

  • Follow the mobymask-demo to try out MobyMask end-to-end payments.
  • Follow the ponder-demo to try out Ponder end-to-end payments.

Clean up

Stop all the services running in background:

laconic-so --stack fixturenet-payments deploy --cluster payments down 30

Clear volumes created by this stack:

# List all relevant volumes
docker volume ls -q --filter "name=payments"

# Remove all the listed volumes
docker volume rm $(docker volume ls -q --filter "name=payments")