0

I'm trying to deploy and run 2 validators in the standalone network using the stellar quickstart docker image. The issue is that the nodes can't seem to find one another even though I'm able to ping one node from the other node.

Configuration

I'm using the following commands in order to launch the docker images:

First node:

$ docker run --rm -it -p "8080:8000" -v "/my-path/stellar/node-1:/opt/stellar" --name stellar-node-1 stellar/quickstart --standalone

Second node:

docker run --rm -it -p "8000:8000" -v "/my-path/stellar/node-2:/opt/stellar" --name stellar-node-2 stellar/quickstart --standalone

My stellar configs are the following:

First node:

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

HTTP_PORT=11626
PEER_PORT=11625
PUBLIC_HTTP_PORT=true
# RUN_STANDALONE=false
RUN_STANDALONE=false
# BUCKET_DIR_PATH="buckets-first"
MANUAL_CLOSE=false
ARTIFICIALLY_ACCELERATE_TIME_FOR_TESTING=false

NETWORK_PASSPHRASE="Standalone Network ; February 2017"
KNOWN_CURSORS=["HORIZON"]
# From GDMNZLQ3KMONL436NJUK2OGTOLQZTV3F3U373JC7XQEY2MCNHA4YVW5K
NODE_SEED="SDQVDISRYN2JXBS7ICL7QJAEKB3HWBJFP2QECXG7GZICAHBK4UNJCWK2 first"
NODE_IS_VALIDATOR=true
NODE_HOME_DOMAIN="mydomain.ai"

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

# COMMANDS=["ll?level=debug"]

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

ALLOW_LOCALHOST_FOR_TESTING=true

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


[[HOME_DOMAINS]]
HOME_DOMAIN="mydomain.ai"
QUALITY="MEDIUM"

[[VALIDATORS]]
NAME="second"
HOME_DOMAIN="mydomain.ai"
PUBLIC_KEY="GBNIBMMKNLS5IYFUMIKUDZUZD3ILFKEOELESKPOB4UD4ZJRG3BWBUT5X"
ADDRESS="172.17.0.3"
# HISTORY="curl -sf http://172.17.0.3/{0} -o {1}"

Second node:

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

HTTP_PORT=11626
PEER_PORT=11625
PUBLIC_HTTP_PORT=true
# RUN_STANDALONE=false
RUN_STANDALONE=false
# BUCKET_DIR_PATH="buckets-first"
MANUAL_CLOSE=false
ARTIFICIALLY_ACCELERATE_TIME_FOR_TESTING=false

NETWORK_PASSPHRASE="Standalone Network ; February 2017"
KNOWN_CURSORS=["HORIZON"]
# From GDMNZLQ3KMONL436NJUK2OGTOLQZTV3F3U373JC7XQEY2MCNHA4YVW5K
NODE_SEED="SDQVDISRYN2JXBS7ICL7QJAEKB3HWBJFP2QECXG7GZICAHBK4UNJCWK2 second"
NODE_IS_VALIDATOR=true
NODE_HOME_DOMAIN="mydomain.ai"

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

# COMMANDS=["ll?level=debug"]

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

ALLOW_LOCALHOST_FOR_TESTING=true

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


[[HOME_DOMAINS]]
HOME_DOMAIN="mydomain.ai"
QUALITY="MEDIUM"

[[VALIDATORS]]
NAME="first"
HOME_DOMAIN="mydomain.ai"
PUBLIC_KEY="GBNIBMMKNLS5IYFUMIKUDZUZD3ILFKEOELESKPOB4UD4ZJRG3BWBUT5X"
ADDRESS="172.17.0.2"
# HISTORY="curl -sf http://172.17.0.2/{0} -o {1}"

Stellar Core Logs

As it's shown below, the nodes aren't able to retrieve the transaction history (even if there is none yet)

2022-01-27T22:53:00.309 GCTI6 [default INFO] Starting stellar-core stellar-core 18.3.0 (2f9ce11b2e7eba7d7d38b123ee6da9e0144249f8)
2022-01-27T22:53:00.310 GCTI6 [Database INFO] Connecting to: postgresql://dbname=core host=localhost user=stellar password=********
2022-01-27T22:53:00.321 GCTI6 [SCP INFO] LocalNode::LocalNode@first qSet: 20b68a
2022-01-27T22:53:00.322 GCTI6 [Database INFO] DB schema is in current version
2022-01-27T22:53:00.322 GCTI6 [default INFO] Listening on 0.0.0.0:11626 for HTTP requests
2022-01-27T22:53:00.322 GCTI6 [default INFO] Connection effective settings:
2022-01-27T22:53:00.322 GCTI6 [default INFO] TARGET_PEER_CONNECTIONS: 8
2022-01-27T22:53:00.322 GCTI6 [default INFO] MAX_ADDITIONAL_PEER_CONNECTIONS: 64
2022-01-27T22:53:00.322 GCTI6 [default INFO] MAX_PENDING_CONNECTIONS: 500
2022-01-27T22:53:00.322 GCTI6 [default INFO] MAX_OUTBOUND_PENDING_CONNECTIONS: 56
2022-01-27T22:53:00.322 GCTI6 [default INFO] MAX_INBOUND_PENDING_CONNECTIONS: 444
2022-01-27T22:53:00.322 GCTI6 [History INFO] Archive 'local' has 'put' and 'get' commands, will be read and written
2022-01-27T22:53:00.322 GCTI6 [Ledger INFO] Last closed ledger (LCL) hash is 91ad57b1798693a3048daa54ce655ca8f068d7d1de1ad756c9b73e2e7dbebd24
2022-01-27T22:53:00.323 GCTI6 [Ledger INFO] Loaded LCL header from database: [seq=2, hash=91ad57]
2022-01-27T22:53:00.323 GCTI6 [Ledger INFO] Starting up application
2022-01-27T22:53:00.323 GCTI6 [Ledger INFO] Last closed ledger (LCL) hash is 91ad57b1798693a3048daa54ce655ca8f068d7d1de1ad756c9b73e2e7dbebd24
2022-01-27T22:53:00.323 GCTI6 [Ledger INFO] Loaded LCL header from database: [seq=2, hash=91ad57]
2022-01-27T22:53:00.324 GCTI6 [Ledger INFO] Assumed bucket-state for LCL: [seq=2, hash=91ad57]
2022-01-27T22:53:00.327 GCTI6 [Herder INFO] Network upgrades cleared
2022-01-27T22:53:00.328 GCTI6 [Overlay INFO] Binding to endpoint 0.0.0.0:11625
2022-01-27T22:53:00.329 GCTI6 [default INFO] * 
2022-01-27T22:53:00.329 GCTI6 [default INFO] * Force-starting scp from the current db state.
2022-01-27T22:53:00.329 GCTI6 [default INFO] * 
2022-01-27T22:53:00.329 GCTI6 [Herder INFO] Force joining SCP with local state
2022-01-27T22:53:00.329 GCTI6 [Ledger INFO] Changing state LM_BOOTING_STATE -> LM_SYNCED_STATE
2022-01-27T22:53:00.332 GCTI6 [History INFO] Downloading history archive state: .well-known/stellar-history.json
2022-01-27T22:53:00.334 GCTI6 [Process WARNING] process 135 exited 1: cp /var/lib/stellar-core/history/vs/.well-known/stellar-history.json buckets/tmp/history-6e96b0f32652c26a/959887f80675684b-stellar-history.json
2022-01-27T22:53:00.334 GCTI6 [History ERROR] Could not download file: archive local maybe missing file .well-known/stellar-history.json
2022-01-27T22:53:00.334 GCTI6 [History ERROR] Could not download .well-known/stellar-history.json file: corrupt archive local
2022-01-27T22:53:00.334 GCTI6 [History ERROR] Failed to obtain archive information: local
2022-01-27T22:53:01.108 GCTI6 [Herder INFO] Armed with network upgrades: upgradetime=1970-01-01T00:00:00Z, protocolversion=18
2022-01-27T22:53:35.324 GCTI6 [Herder WARNING] Lost track of consensus
2022-01-27T22:53:35.324 GCTI6 [Herder WARNING] Out of sync context: {
   "queue" : null,
   "scp" : {
      "2" : {
         "ballotProtocol" : {
            "ballot" : "(4294967295,[ SIGNED@first txH: ec9b02, ct: 1643313185, upgrades: [ ] ])",
            "heard" : false,
            "phase" : "EXTERNALIZE",
            "state" : "i: 2 | EXTERNALIZE | b: (4294967295,[ SIGNED@first txH: ec9b02, ct: 1643313185, upgrades: [ ] ]) | p: (4294967295,[ SIGNED@first txH: ec9b02, ct: 1643313185, upgrades: [ ] ]) | p': (<null_ballot>) | h: (1,[ SIGNED@first txH: ec9b02, ct: 1643313185, upgrades: [ ] ]) | c: (1,[ SIGNED@first txH: ec9b02, ct: 1643313185, upgrades: [ ] ]) | M: 1"
         },
         "nomination" : {
            "X" : [ "[ SIGNED@first txH: ec9b02, ct: 1643313185, upgrades: [ ] ]" ],
            "Y" : [ "[ SIGNED@first txH: ec9b02, ct: 1643313185, upgrades: [ ] ]" ],
            "roundnumber" : 0,
            "started" : false
         },
         "quorum_sets" : {
            "d05a3b" : {
               "t" : 1,
               "v" : [ "first" ]
            }
         },
         "statements" : [
            [
               1643323980,
               "{ENV@first |  i: 2 | NOMINATE | D: d05a3b | X: {'[ SIGNED@first txH: ec9b02, ct: 1643313185, upgrades: [ ] ]'} | Y: {'[ SIGNED@first txH: ec9b02, ct: 1643313185, upgrades: [ ] ]'} }",
               true
            ],
            [
               1643323980,
               "{ENV@first |  i: 2 | EXTERNALIZE | c: (1,[ SIGNED@first txH: ec9b02, ct: 1643313185, upgrades: [ ] ]) | h.n: 1 | (lastD): d05a3b }",
               true
            ]
         ],
         "validated" : true
      },
      "3" : {
         "ballotProtocol" : {
            "ballot" : "(<null_ballot>)",
            "heard" : false,
            "phase" : "PREPARE",
            "state" : "i: 3 | PREPARE | b: (<null_ballot>) | p: (<null_ballot>) | p': (<null_ballot>) | h: (<null_ballot>) | c: (<null_ballot>) | M: 0"
         },
         "nomination" : {
            "X" : [
               "[ SIGNED@first txH: 88323c, ct: 1643313758, upgrades: [ ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643313758, upgrades: [protocolversion=18,  ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643314083, upgrades: [ ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643314083, upgrades: [protocolversion=18,  ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643314239, upgrades: [ ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643314239, upgrades: [protocolversion=18,  ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643314677, upgrades: [ ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643314677, upgrades: [protocolversion=18,  ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643317118, upgrades: [ ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643317118, upgrades: [protocolversion=18,  ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643317441, upgrades: [ ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643317441, upgrades: [protocolversion=18,  ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643317720, upgrades: [ ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643317720, upgrades: [protocolversion=18,  ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643320378, upgrades: [ ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643320378, upgrades: [protocolversion=18,  ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643321134, upgrades: [ ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643321134, upgrades: [protocolversion=18,  ] ]",
               "[ SIGNED@first txH: 88323c, ct: 1643323980, upgrades: [ ] ]"
            ],
            "roundnumber" : 8,
            "started" : true
         },
         "quorum_sets" : {
            "20b68a" : {
               "t" : 2,
               "v" : [ "second", "first" ]
            }
         },
         "statements" : [
            [
               1643323980,
               "{ENV@first |  i: 3 | NOMINATE | D: 20b68a | X: {'[ SIGNED@first txH: 88323c, ct: 1643313758, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643313758, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314083, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314083, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314239, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314239, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314677, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314677, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317118, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317118, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317441, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317441, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317720, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317720, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643320378, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643320378, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643321134, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643321134, upgrades: [protocolversion=18,  ] ]'} | Y: {} }",
               true
            ],
            [
               1643323980,
               "{ENV@first |  i: 3 | NOMINATE | D: 20b68a | X: {'[ SIGNED@first txH: 88323c, ct: 1643313758, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643313758, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314083, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314083, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314239, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314239, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314677, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643314677, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317118, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317118, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317441, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317441, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317720, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643317720, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643320378, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643320378, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643321134, upgrades: [ ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643321134, upgrades: [protocolversion=18,  ] ]' ,'[ SIGNED@first txH: 88323c, ct: 1643323980, upgrades: [ ] ]'} | Y: {} }",
               true
            ]
         ],
         "validated" : true
      }
   },
   "you" : "first"
}

2022-01-27T22:53:45.324 GCTI6 [Herder INFO] Asking peers for SCP messages more recent than 1

Also when I run the http-command info I get the following result:

2022-01-27T23:06:58.513 [default INFO] Config from stellar-core.cfg
2022-01-27T23:06:58.513 [default INFO] 'ALLOW_LOCALHOST_FOR_TESTING' enabled in configuration file - node may not function properly with most networks
2022-01-27T23:06:58.513 [default INFO] Generated QUORUM_SET: {
   "t" : 2,
   "v" : [ "second", "first" ]
}

2022-01-27T23:06:58.513 [default WARNING] Quorum can be reached without validators with an archive
Content-Length: 926
Content-Type: application/json

2022-01-27T23:06:58.514 GCTI6 [default INFO] {
   "info" : {
      "build" : "stellar-core 18.3.0 (2f9ce11b2e7eba7d7d38b123ee6da9e0144249f8)",
      "ledger" : {
         "age" : 11633,
         "baseFee" : 100,
         "baseReserve" : 100000000,
         "closeTime" : 1643313185,
         "hash" : "91ad57b1798693a3048daa54ce655ca8f068d7d1de1ad756c9b73e2e7dbebd24",
         "maxTxSetSize" : 100,
         "num" : 2,
         "version" : 0
      },
      "network" : "Standalone Network ; February 2017",
      "peers" : {
         "authenticated_count" : 0,
         "pending_count" : 0
      },
      "protocol_version" : 18,
      "quorum" : {
         "node" : "first",
         "qset" : {
            "cost" : 0,
            "lag_ms" : null
         }
      },
      "startedOn" : "2022-01-27T22:53:00Z",
      "state" : "Joining SCP",
      "status" : [
         "Armed with network upgrades: upgradetime=1970-01-01T00:00:00Z, protocolversion=18"
      ]
   }
}

The state is stuck in "Joining SCP", also there are 0 pending and authenticated counts that lead me to believe that there's an issue with my config files. I have taken a look at other similar questions and I tried a lot of different config files and methods but I am not able to make it work.

  • Should I be using the quickstart image or should I switch to stellar-core (even though it seems to be deprecated)?
  • Can anybody provide a working config with two validator nodes in standalone or even in testnet?

Thanks a lot!

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.