2

My goal was to set up a small test network with two stellar nodes. Therefor, I forked the quickstart repo and made some small adjustments. I changed the public key and the network passphrase.

On my local computer I set up an adapted version of the testnet configuration from the same repo. I only changed the validators and replaced them my with my stand alone node. As you can see in the following output of my cfg file.

HTTP_PORT=11626
PUBLIC_HTTP_PORT=true
LOG_FILE_PATH=""

NETWORK_PASSPHRASE="Edu Net; March 2020"

DATABASE="postgresql://dbname=core host=localhost user=stellar password=__PGPASS__"
UNSAFE_QUORUM=true
FAILURE_SAFETY=0
CATCHUP_RECENT=100

[HISTORY.cache]
get="cp /opt/stellar/history-cache/{0} {1}"

[[HOME_DOMAINS]]
HOME_DOMAIN="{domain}.edu"
QUALITY="LOW"

[[VALIDATORS]]
NAME="node_1"
HOME_DOMAIN="{domain}.edu"
PUBLIC_KEY="{PUBLIC_KEY}"
ADDRESS="95.217.87.26:11625"
HISTORY="curl -sf http://{IP}:1570/{0} -o {1}"

This is the horizon .env file

export DATABASE_URL="postgres://stellar:stellar@localhost/horizon"
export STELLAR_CORE_DATABASE_URL="postgres://stellar:stellar@localhost/core"
export STELLAR_CORE_URL="http://localhost:11626"
export LOG_LEVEL="info"
export INGEST="true"
# It's fine for CATCHUP_RECENT stellar-core.
export INGEST_FAILED_TRANSACTIONS="true"
export PER_HOUR_RATE_LIMIT="72000"
export NETWORK_PASSPHRASE="Edu Net; March 2020"
export DISABLE_ASSET_STATS="true"
export HISTORY_ARCHIVE_URLS="http://{IP}:1570"

When I now start the local node it is not updating the state of it. The horizon api says:

...
"horizon_version": "v1.0.0",
"core_version": "v12.4.0",
"ingest_latest_ledger": 0,
"history_latest_ledger": 0,
"history_elder_ledger": 0,
"core_latest_ledger": 1,
"network_passphrase": "Edu Net; March 2020",
"current_protocol_version": 0,
"core_supported_protocol_version": 12

When I look at the supervisor output there are many errors in the horizon stderror log.

time="2020-03-23T19:21:52.557Z" level=error msg="Error in ingestion state machine" current_state="buildFromCheckpoint(checkpointLedger=30015)" error="Error ingesting history archive: Error validating bucket list from HAS: cannot validate bucket hash list. Checkpoint ledger (30015) must exist in Stellar-Core database." next_state=start pid=131 service=expingest
time="2020-03-23T19:21:53.558Z" level=info msg="Ingestion system state machine transition" current_state="buildFromCheckpoint(checkpointLedger=30015)" next_state=start pid=131 service=expingest
time="2020-03-23T19:21:54.913Z" level=info msg="Ingestion system state machine transition" current_state=start next_state="buildFromCheckpoint(checkpointLedger=30015)" pid=131 service=expingest
time="2020-03-23T19:21:54.923Z" level=info msg="Starting ingestion system from empty state..." pid=131 service=expingest
time="2020-03-23T19:21:54.958Z" level=info msg="Processing state" ledger=30015 pid=131 service=expingest

Here it says error="Error ingesting history archive: Error validating bucket list from HAS: cannot validate bucket hash list. Checkpoint ledger (30015) must exist in Stellar-Core database."

The problem does not occur when I use the testnet validators.

I am not sure where I messed up my configuration. Thank you so much for your help.

1 Answer 1

1

So the problem is that the standalone configuration does not allow access to the network. Therefore, the node can not talk to other connecting nodes.

If you want other nodes to connect to the standalone node, make sure you set the RUN_STANDALONE=true to RUN_STANDALONE=false in your stellar-core.cfg

The adapted standalone config should look like this:

# simple configuration for a standalone test "network"
# see stellar-core_example.cfg for a description of the configuration parameters

HTTP_PORT=11626
PUBLIC_HTTP_PORT=true
RUN_STANDALONE=false

NETWORK_PASSPHRASE="Standalone Network ; February 2017"

NODE_SEED="SDQVDISRYN2JXBS7ICL7QJAEKB3HWBJFP2QECXG7GZICAHBK4UNJCWK2 self"
NODE_IS_VALIDATOR=true

#DATABASE="postgresql://dbname=stellar user=postgres password=password host=localhost"
#DATABASE="sqlite3://stellar.db"
DATABASE="postgresql://dbname=core host=localhost user=stellar password=__PGPASS__"

COMMANDS=["ll?level=debug"]

FAILURE_SAFETY=0
UNSAFE_QUORUM=true
#The public keys of the Stellar testnet servers
[QUORUM_SET]
THRESHOLD_PERCENT=100
VALIDATORS=["$self"]

[HISTORY.vs]
get="cp /tmp/stellar-core/history/vs/{0} {1}"
put="cp {0} /tmp/stellar-core/history/vs/{1}"
mkdir="mkdir -p /tmp/stellar-core/history/vs/{0}"
2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.