Fixturenet pocket (#350)
* add fixturenet-gaia stack * add fixturenet-pocket * integrate with eth fixturenet * separate out fixturenet-gaia * use pocket-deployments Dockerfile --------- Co-authored-by: iskay <ian@knowable.vc> Co-authored-by: Ian <ikay@lakeheadu.ca>
This commit is contained in:
		
							parent
							
								
									ed4f40118f
								
							
						
					
					
						commit
						b23b5ae3bf
					
				
							
								
								
									
										18
									
								
								app/data/compose/docker-compose-fixturenet-pocket.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								app/data/compose/docker-compose-fixturenet-pocket.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| version: "3.2" | ||||
| services: | ||||
|   pocket: | ||||
|     restart: unless-stopped | ||||
|     image: cerc/pocket:local | ||||
|     # command: ["sh", "/docker-entrypoint-scripts.d/create-fixturenet.sh"] | ||||
|     entrypoint: ["sh", "/docker-entrypoint-scripts.d/create-fixturenet.sh"] | ||||
|     volumes: | ||||
|       # TODO: look at folding these scripts into the container | ||||
|       - ../config/fixturenet-pocket/create-fixturenet.sh:/docker-entrypoint-scripts.d/create-fixturenet.sh | ||||
|       - ../config/fixturenet-pocket/chains.json:/home/app/pocket-configs/chains.json | ||||
|       - ../config/fixturenet-pocket/genesis.json:/home/app/pocket-configs/genesis.json | ||||
|     ports: | ||||
|       - "8081:8081" # pocket relay rpc | ||||
| networks: | ||||
|   net1: | ||||
|     name: fixturenet-eth_default | ||||
|     external: true | ||||
							
								
								
									
										18
									
								
								app/data/config/fixturenet-pocket/chains.json
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								app/data/config/fixturenet-pocket/chains.json
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,18 @@ | ||||
| [ | ||||
|   { | ||||
|     "id": "0001", | ||||
|     "url": "http://127.0.0.1:8081/", | ||||
|     "basic_auth": { | ||||
|       "username": "", | ||||
|       "password": "" | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     "id": "0021", | ||||
|     "url": "http://fixturenet-eth-geth-1:8545/", | ||||
|     "basic_auth": { | ||||
|       "username": "", | ||||
|       "password": "" | ||||
|     } | ||||
|   } | ||||
| ] | ||||
							
								
								
									
										65
									
								
								app/data/config/fixturenet-pocket/create-fixturenet.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								app/data/config/fixturenet-pocket/create-fixturenet.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,65 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| # TODO: we should have a mechanism to bundle it inside the container rather than link from here | ||||
| # at deploy time. | ||||
| 
 | ||||
| CHAINID="pocketlocal-1" | ||||
| MONIKER="localtestnet" | ||||
| SERVICE_URL="http://127.0.0.1:8081" | ||||
| PASSWORD="mypassword" # wallet password, required by cli | ||||
| 
 | ||||
| # check if jq is installed; install if necessary | ||||
| # command -v jq > /dev/null 2>&1 || { echo >&2 "jq not installed. More info: https://stedolan.github.io/jq/download/"; exit 1; } | ||||
| if ! command -v jq > /dev/null 2>&1; then | ||||
|   echo "jq not installed, downloading..." | ||||
|   mkdir -p /home/app/bin | ||||
|   wget -O /home/app/bin/jq https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 | ||||
|   chmod +x /home/app/bin/jq | ||||
|   export PATH=$PATH:/home/app/bin | ||||
| fi | ||||
| 
 | ||||
| # remove existing daemon and client | ||||
| rm -rf ~/.pocket* | ||||
| 
 | ||||
| # create a wallet with password "mypassword" and save the address for later | ||||
| address=$(pocket accounts create --pwd $PASSWORD | awk '/Address:/ {print $2}') | ||||
| 
 | ||||
| # set this address as the validator address for the node | ||||
| pocket accounts set-validator $address --pwd $PASSWORD | ||||
| 
 | ||||
| # save the public key for later | ||||
| pubkey=$(pocket accounts show $address | awk '/Public Key:/ {print $3}') | ||||
| 
 | ||||
| # set node's moniker | ||||
| echo $(pocket util print-configs) | jq '.tendermint_config.Moniker = "'"$MONIKER"'"' | jq . > $HOME/.pocket/config/config.json | ||||
| 
 | ||||
| # pocket mainnet has block time of 15 minutes, set closer to 1 minute instead | ||||
| cat $HOME/.pocket/config/config.json | jq '.tendermint_config.Consensus.TimeoutPropose = 8000000000' | jq . > $HOME/.pocket/config/tmp_config.json && mv $HOME/.pocket/config/tmp_config.json $HOME/.pocket/config/config.json | ||||
| cat $HOME/.pocket/config/config.json | jq '.tendermint_config.Consensus.TimeoutProposeDelta = 600000000' | jq . > $HOME/.pocket/config/tmp_config.json && mv $HOME/.pocket/config/tmp_config.json $HOME/.pocket/config/config.json | ||||
| cat $HOME/.pocket/config/config.json | jq '.tendermint_config.Consensus.TimeoutPrevote = 4000000000' | jq . > $HOME/.pocket/config/tmp_config.json && mv $HOME/.pocket/config/tmp_config.json $HOME/.pocket/config/config.json | ||||
| cat $HOME/.pocket/config/config.json | jq '.tendermint_config.Consensus.TimeoutPrevoteDelta = 600000000' | jq . > $HOME/.pocket/config/tmp_config.json && mv $HOME/.pocket/config/tmp_config.json $HOME/.pocket/config/config.json | ||||
| cat $HOME/.pocket/config/config.json | jq '.tendermint_config.Consensus.TimeoutPrecommit = 4000000000' | jq . > $HOME/.pocket/config/tmp_config.json && mv $HOME/.pocket/config/tmp_config.json $HOME/.pocket/config/config.json | ||||
| cat $HOME/.pocket/config/config.json | jq '.tendermint_config.Consensus.TimeoutPrecommitDelta = 6000000006' | jq . > $HOME/.pocket/config/tmp_config.json && mv $HOME/.pocket/config/tmp_config.json $HOME/.pocket/config/config.json | ||||
| cat $HOME/.pocket/config/config.json | jq '.tendermint_config.Consensus.TimeoutCommit = 52000000000' | jq . > $HOME/.pocket/config/tmp_config.json && mv $HOME/.pocket/config/tmp_config.json $HOME/.pocket/config/config.json | ||||
| cat $HOME/.pocket/config/config.json | jq '.tendermint_config.Consensus.CreateEmptyBlocksInterval = 60000000000' | jq . > $HOME/.pocket/config/tmp_config.json && mv $HOME/.pocket/config/tmp_config.json $HOME/.pocket/config/config.json | ||||
| cat $HOME/.pocket/config/config.json | jq '.tendermint_config.Consensus.PeerGossipSleepDuration = 2000000000' | jq . > $HOME/.pocket/config/tmp_config.json && mv $HOME/.pocket/config/tmp_config.json $HOME/.pocket/config/config.json | ||||
| cat $HOME/.pocket/config/config.json | jq '.tendermint_config.Consensus.PeerQueryMaj23SleepDuration = 1200000000' | jq . > $HOME/.pocket/config/tmp_config.json && mv $HOME/.pocket/config/tmp_config.json $HOME/.pocket/config/config.json | ||||
| 
 | ||||
| # include genesis.json and chains.json | ||||
| cp $HOME/pocket-configs/genesis.json $HOME/.pocket/config/genesis.json | ||||
| cp $HOME/pocket-configs/chains.json $HOME/.pocket/config/chains.json | ||||
| 
 | ||||
| # set chain-id and add node to genesis.json as a validator | ||||
| cat $HOME/.pocket/config/genesis.json | jq '.chain_id="'"$CHAINID"'"' > $HOME/.pocket/config/tmp_genesis.json && mv $HOME/.pocket/config/tmp_genesis.json $HOME/.pocket/config/genesis.json | ||||
| cat $HOME/.pocket/config/genesis.json | jq '.app_state.auth.accounts[0].value.address="'"$address"'"' > $HOME/.pocket/config/tmp_genesis.json && mv $HOME/.pocket/config/tmp_genesis.json $HOME/.pocket/config/genesis.json | ||||
| cat $HOME/.pocket/config/genesis.json | jq '.app_state.auth.accounts[0].value.public_key.value="'"$pubkey"'"' > $HOME/.pocket/config/tmp_genesis.json && mv $HOME/.pocket/config/tmp_genesis.json $HOME/.pocket/config/genesis.json | ||||
| cat $HOME/.pocket/config/genesis.json | jq '.app_state.pos.validators[0].address="'"$address"'"' > $HOME/.pocket/config/tmp_genesis.json && mv $HOME/.pocket/config/tmp_genesis.json $HOME/.pocket/config/genesis.json | ||||
| cat $HOME/.pocket/config/genesis.json | jq '.app_state.pos.validators[0].public_key="'"$pubkey"'"' > $HOME/.pocket/config/tmp_genesis.json && mv $HOME/.pocket/config/tmp_genesis.json $HOME/.pocket/config/genesis.json | ||||
| cat $HOME/.pocket/config/genesis.json | jq '.app_state.pos.validators[0].service_url="'"$SERVICE_URL"'"' > $HOME/.pocket/config/tmp_genesis.json && mv $HOME/.pocket/config/tmp_genesis.json $HOME/.pocket/config/genesis.json | ||||
| 
 | ||||
| # if [[ $1 == "pending" ]]; then | ||||
| #   echo "pending mode is on, please wait for the first block committed." | ||||
| # fi | ||||
| 
 | ||||
| # Start the node | ||||
| pocket start --simulateRelay | ||||
							
								
								
									
										272
									
								
								app/data/config/fixturenet-pocket/genesis.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										272
									
								
								app/data/config/fixturenet-pocket/genesis.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,272 @@ | ||||
| { | ||||
|     "genesis_time": "2020-07-28T15:00:00.000000Z", | ||||
|     "chain_id": "testnet", | ||||
|     "consensus_params": { | ||||
|         "block": { | ||||
|             "max_bytes": "4000000", | ||||
|             "max_gas": "-1", | ||||
|             "time_iota_ms": "1" | ||||
|         }, | ||||
|         "evidence": { | ||||
|             "max_age": "120000000000" | ||||
|         }, | ||||
|         "validator": { | ||||
|             "pub_key_types": [ | ||||
|                 "ed25519" | ||||
|             ] | ||||
|         } | ||||
|     }, | ||||
|     "app_hash": "", | ||||
|     "app_state": { | ||||
|         "application": { | ||||
|             "params": { | ||||
|                 "unstaking_time": "1814000000000000", | ||||
|                 "max_applications": "9223372036854775807", | ||||
|                 "app_stake_minimum": "1000000", | ||||
|                 "base_relays_per_pokt": "167", | ||||
|                 "stability_adjustment": "0", | ||||
|                 "participation_rate_on": false, | ||||
|                 "maximum_chains": "15" | ||||
|             }, | ||||
|             "applications": [], | ||||
|             "exported": false | ||||
|         }, | ||||
|         "auth": { | ||||
|             "params": { | ||||
|                 "max_memo_characters": "75", | ||||
|                 "tx_sig_limit": "8", | ||||
|                 "fee_multipliers": { | ||||
|                     "fee_multiplier": [], | ||||
|                     "default": "1" | ||||
|                 } | ||||
|             }, | ||||
|             "accounts": [ | ||||
|                 { | ||||
|                     "type": "posmint/Account", | ||||
|                     "value": { | ||||
|                         "address": "!validator-address", | ||||
|                         "coins": [ | ||||
|                             { | ||||
|                                 "amount": "0", | ||||
|                                 "denom": "upokt" | ||||
|                             } | ||||
|                         ], | ||||
|                         "public_key": { | ||||
|                             "type": "crypto/ed25519_public_key", | ||||
|                             "value": "!validator-pubkey" | ||||
|                         } | ||||
|                     } | ||||
|                 }  | ||||
|             ], | ||||
|             "supply": [] | ||||
|         }, | ||||
|         "gov": { | ||||
|             "params": { | ||||
|                 "acl": [ | ||||
|                     { | ||||
|                         "acl_key": "application/ApplicationStakeMinimum", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "application/AppUnstakingTime", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "application/BaseRelaysPerPOKT", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "application/MaxApplications", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "application/MaximumChains", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "application/ParticipationRateOn", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "application/StabilityAdjustment", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "auth/MaxMemoCharacters", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "auth/TxSigLimit", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "gov/acl", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "gov/daoOwner", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "gov/upgrade", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pocketcore/ClaimExpiration", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "auth/FeeMultipliers", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pocketcore/ReplayAttackBurnMultiplier", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/ProposerPercentage", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pocketcore/ClaimSubmissionWindow", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pocketcore/MinimumNumberOfProofs", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pocketcore/SessionNodeCount", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pocketcore/SupportedBlockchains", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/BlocksPerSession", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/DAOAllocation", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/DowntimeJailDuration", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/MaxEvidenceAge", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/MaximumChains", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/MaxJailedBlocks", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/MaxValidators", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/MinSignedPerWindow", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/RelaysToTokensMultiplier", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/SignedBlocksWindow", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/SlashFractionDoubleSign", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/SlashFractionDowntime", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/StakeDenom", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/StakeMinimum", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     }, | ||||
|                     { | ||||
|                         "acl_key": "pos/UnstakingTime", | ||||
|                         "address": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4" | ||||
|                     } | ||||
|                 ], | ||||
|                 "dao_owner": "a83172b67b5ffbfcb8acb95acc0fd0466a9d4bc4", | ||||
|                 "upgrade": { | ||||
|                     "Height": "0", | ||||
|                     "Version": "0" | ||||
|                 } | ||||
|             }, | ||||
|             "DAO_Tokens": "50000000000000" | ||||
|         }, | ||||
|         "pos": { | ||||
|             "params": { | ||||
|                 "relays_to_tokens_multiplier": "10000", | ||||
|                 "unstaking_time": "1814000000000000", | ||||
|                 "max_validators": "5000", | ||||
|                 "stake_denom": "upokt", | ||||
|                 "stake_minimum": "15000000000", | ||||
|                 "session_block_frequency": "4", | ||||
|                 "dao_allocation": "10", | ||||
|                 "proposer_allocation": "1", | ||||
|                 "maximum_chains": "15", | ||||
|                 "max_jailed_blocks": "37960", | ||||
|                 "max_evidence_age": "120000000000", | ||||
|                 "signed_blocks_window": "10", | ||||
|                 "min_signed_per_window": "0.60", | ||||
|                 "downtime_jail_duration": "3600000000000", | ||||
|                 "slash_fraction_double_sign": "0.05", | ||||
|                 "slash_fraction_downtime": "0.000001" | ||||
|             }, | ||||
|             "prevState_total_power": "0", | ||||
|             "prevState_validator_powers": null, | ||||
|             "validators": [ | ||||
|                 { | ||||
|                     "address": "!validator-address", | ||||
|                     "public_key": "!validator-pubkey", | ||||
|                     "jailed": false, | ||||
|                     "status": 2, | ||||
|                     "tokens": "5000000000000", | ||||
|                     "service_url": "!validator-url", | ||||
|                     "chains": [ | ||||
|                         "0001", | ||||
|                         "0021" | ||||
|                     ], | ||||
|                     "unstaking_time": "2021-05-15T00:00:00Z" | ||||
|                 } | ||||
|             ], | ||||
|             "exported": false, | ||||
|             "signing_infos": {}, | ||||
|             "missed_blocks": {}, | ||||
|             "previous_proposer": "" | ||||
|         }, | ||||
|         "pocketcore": { | ||||
|             "params": { | ||||
|                 "session_node_count": "5", | ||||
|                 "proof_waiting_period": "3", | ||||
|                 "supported_blockchains": [ | ||||
|                     "0001", | ||||
|                     "0021" | ||||
|                 ], | ||||
|                 "claim_expiration": "120", | ||||
|                 "replay_attack_burn_multiplier": "3", | ||||
|                 "minimum_number_of_proofs": "10" | ||||
|             }, | ||||
|             "receipts": null, | ||||
|             "claims": null | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										3
									
								
								app/data/container-build/cerc-pocket/build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								app/data/container-build/cerc-pocket/build.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,3 @@ | ||||
| #!/usr/bin/env bash | ||||
| # Build cerc/pocket | ||||
| docker build -t cerc/pocket:local ${CERC_REPO_BASE_DIR}/pocket-core-deployments/docker | ||||
| @ -36,3 +36,4 @@ cerc/optimism-l2geth | ||||
| cerc/optimism-op-batcher | ||||
| cerc/optimism-op-node | ||||
| cerc/optimism-op-proposer | ||||
| cerc/pocket | ||||
|  | ||||
| @ -24,3 +24,4 @@ tx-spammer | ||||
| kubo | ||||
| foundry | ||||
| fixturenet-optimism | ||||
| fixturenet-pocket | ||||
|  | ||||
| @ -27,3 +27,5 @@ lirewine/sdk | ||||
| telackey/act_runner | ||||
| ethereum-optimism/op-geth | ||||
| ethereum-optimism/optimism | ||||
| pokt-network/pocket-core | ||||
| pokt-network/pocket-core-deployments | ||||
|  | ||||
							
								
								
									
										59
									
								
								app/data/stacks/fixturenet-pocket/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								app/data/stacks/fixturenet-pocket/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| # Pocket Fixturenet | ||||
| 
 | ||||
| Instructions for deploying a local single-node Pocket chain alongside a geth + lighthouse blockchain "fixturenet" for development and testing purposes using laconic-stack-orchestrator. | ||||
| 
 | ||||
| ## 1. Build Laconic Stack Orchestrator | ||||
| Build this fork of Laconic Stack Orchestrator which includes the fixturenet-pocket stack: | ||||
| ``` | ||||
| $ scripts/build_shiv_package.sh | ||||
| $ cd package | ||||
| $ mv laconic-so-{version} /usr/local/bin/laconic-so  # Or move laconic-so to ~/bin or your favorite on-path directory | ||||
| ``` | ||||
| 
 | ||||
| ## 2. Clone required repositories | ||||
| ``` | ||||
| $ laconic-so --stack fixturenet-pocket setup-repositories | ||||
| ``` | ||||
| ## 3. Build the stack's containers | ||||
| ``` | ||||
| $ laconic-so --stack fixturenet-pocket build-containers | ||||
| ``` | ||||
| ## 4. Deploy the stack | ||||
| ``` | ||||
| $ laconic-so --stack fixturenet-pocket deploy up | ||||
| ``` | ||||
| It may take up to 10 minutes for the Eth Fixturenet to fully come online and start producing blocks. | ||||
| ## 5. Check status | ||||
| **Eth Fixturenet:** | ||||
| ``` | ||||
| $ laconic-so --stack fixturenet-pocket deploy exec fixturenet-eth-bootnode-lighthouse /scripts/status-internal.sh | ||||
| Waiting for geth to generate DAG.... done | ||||
| Waiting for beacon phase0.... done | ||||
| Waiting for beacon altair.... done | ||||
| Waiting for beacon bellatrix pre-merge.... done | ||||
| Waiting for beacon bellatrix merge.... done | ||||
| ``` | ||||
| **Pocket node:** | ||||
| ``` | ||||
| $ laconic-so --stack fixturenet-pocket deploy exec pocket "pocket query height" | ||||
| 2023/04/20 08:07:46 Initializing Pocket Datadir | ||||
| 2023/04/20 08:07:46 datadir = /home/app/.pocket | ||||
| http://localhost:8081/v1/query/height | ||||
| { | ||||
|     "height": 4 | ||||
| } | ||||
| ``` | ||||
| or | ||||
| ``` | ||||
| $ laconic-so --stack fixturenet-pocket deploy logs pocket | ||||
| ``` | ||||
| ## 6. Send a relay request to Pocket node | ||||
| The Pocket node serves relay requests at `http://localhost:8081/v1/client/sim`   | ||||
| **Example request:** | ||||
| ``` | ||||
| $ curl -X POST --data '{"relay_network_id":"0021","payload":{"data":"{\"jsonrpc\": \"2.0\",\"id\": 1,\"method\": \"eth_blockNumber\",\"params\": []}","method":"POST","path":"","headers":{}}}' http://localhost:8081/v1/client/sim | ||||
| ``` | ||||
| **Response:** | ||||
| ``` | ||||
| "{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":\"0x6fe\"}\n" | ||||
| ``` | ||||
							
								
								
									
										16
									
								
								app/data/stacks/fixturenet-pocket/stack.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								app/data/stacks/fixturenet-pocket/stack.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | ||||
| version: "1.0" | ||||
| name: fixturenet-pocket | ||||
| description: "A single node pocket chain that can serve relays from the geth-1 node in eth-fixturenet" | ||||
| repos: | ||||
|   - cerc-io/go-ethereum | ||||
|   - pokt-network/pocket-core | ||||
|   - pokt-network/pocket-core-deployments # contains the dockerfile | ||||
| containers: | ||||
|   - cerc/go-ethereum | ||||
|   - cerc/lighthouse | ||||
|   - cerc/fixturenet-eth-geth | ||||
|   - cerc/fixturenet-eth-lighthouse | ||||
|   - cerc/pocket | ||||
| pods: | ||||
|   - fixturenet-pocket | ||||
|   - fixturenet-eth | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user