Error: Upgraded to Node 9.0.0 from Node 8.9.2

Hello all,

I did an upgrade to Node 9.0.0. from Node 8.9.2 for my Relay1. However, after the upgrade, when i tried to start my cardano-node, i got this error. From the error, it looks like key "minFeeRefScriptCostPerByte" was not found in Conway-genesis.json file but I am not sure. Could anyone help me with this? Thank you so much!

Jul 10 00:27:27 relay1 systemd[1]: cardano-node.service: Scheduled restart job, restart counter is at 235.
Jul 10 00:27:27 relay1 systemd[1]: Stopped Cardano Node Service.
Jul 10 00:27:27 relay1 systemd[1]: Started Cardano Node Service.
Jul 10 00:27:28 relay1 cardano-node[3813]: Node configuration: NodeConfiguration {ncSocketConfig = SocketConfig {ncNodeIPv4Addr = Last {getLast = Just 0.0.0.0}, ncNodeIPv6Addr = Last {getLast = Nothing}, ncNodePortNumber = Last {getLast = Just 6000}, ncSocketPath = Last {getLast = Just "/home/capy/cardano-my-node/db/socket"}}, ncConfigFile = "/home/capy/cardano-my-node/config.json", ncTopologyFile = "/home/capy/cardano-my-node/topology-legacy.json", ncDatabaseFile = "/home/capy/cardano-my-node/db", ncProtocolFiles = ProtocolFilepaths {byronCertFile = Nothing, byronKeyFile = Nothing, shelleyKESFile = Nothing, shelleyVRFFile = Nothing, shelleyCertFile = Nothing, shelleyBulkCredsFile = Nothing}, ncValidateDB = False, ncShutdownConfig = ShutdownConfig {scIPC = Nothing, scOnSyncLimit = Just NoShutdown}, ncStartAsNonProducingNode = False, ncProtocolConfig = NodeProtocolConfigurationCardano (NodeByronProtocolConfiguration {npcByronGenesisFile = "/home/capy/cardano-my-node/byron-genesis.json", npcByronGenesisFileHash = Just "5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb", npcByronReqNetworkMagic = RequiresNoMagic, npcByronPbftSignatureThresh = Nothing, npcByronSupportedProtocolVersionMajor = 3, npcByronSupportedProtocolVersionMinor = 0, npcByronSupportedProtocolVersionAlt = 0}) (NodeShelleyProtocolConfiguration {npcShelleyGenesisFile = "/home/capy/cardano-my-node/shelley-genesis.json", npcShelleyGenesisFileHash = Just "1a3be38bcbb7911969283716ad7aa550250226b76a61fc51cc9a9a35d9276d81"}) (NodeAlonzoProtocolConfiguration {npcAlonzoGenesisFile = "/home/capy/cardano-my-node/alonzo-genesis.json", npcAlonzoGenesisFileHash = Just "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874"}) (NodeConwayProtocolConfiguration {npcConwayGenesisFile = Just "/home/capy/cardano-my-node/conway-genesis.json", npcConwayGenesisFileHash = Just "de609b281cb3d8ae91a9d63a00c87092975612d603aa54c0f1c6a781e33d6e1e"}) (NodeHardForkProtocolConfiguration {npcExperimentalHardForksEnabled = False, npcTestShelleyHardForkAtEpoch = Nothing, npcTestShelleyHardForkAtVersion = Nothing, npcTestAllegraHardForkAtEpoch = Nothing, npcTestAllegraHardForkAtVersion = Nothing, npcTestMaryHardForkAtEpoch = Nothing, npcTestMaryHardForkAtVersion = Nothing, npcTestAlonzoHardForkAtEpoch = Nothing, npcTestAlonzoHardForkAtVersion = Nothing, npcTestBabbageHardForkAtEpoch = Nothing, npcTestBabbageHardForkAtVersion = Nothing, npcTestConwayHardForkAtEpoch = Nothing, npcTestConwayHardForkAtVersion = Nothing}), ncDiffusionMode = InitiatorAndResponderDiffusionMode, ncNumOfDiskSnapshots = DefaultNumOfDiskSnapshots, ncSnapshotInterval = DefaultSnapshotInterval, ncExperimentalProtocolsEnabled = False, ncMaxConcurrencyBulkSync = Nothing, ncMaxConcurrencyDeadline = Nothing, ncLoggingSwitch = True, ncLogMetrics = True, ncTraceConfig = TracingOnLegacy (TraceSelection {traceVerbosity = NormalVerbosity, traceAcceptPolicy = OnOff {isOn = True}, traceBlockFetchClient = OnOff {isOn = False}, traceBlockFetchDecisions = OnOff {isOn = False}, traceBlockFetchProtocol = OnOff {isOn = False}, traceBlockFetchProtocolSerialised = OnOff {isOn = False}, traceBlockFetchServer = OnOff {isOn = False}, traceBlockchainTime = OnOff {isOn = False}, traceChainDB = OnOff {isOn = True}, traceChainSyncBlockServer = OnOff {isOn = False}, traceChainSyncClient = OnOff {isOn = False}, traceChainSyncHeaderServer = OnOff {isOn = False}, traceChainSyncProtocol = OnOff {isOn = False}, traceConnectionManager = OnOff {isOn = True}, traceConnectionManagerCounters = OnOff {isOn = True}, traceConnectionManagerTransitions = OnOff {isOn = False}, traceDebugPeerSelectionInitiatorTracer = OnOff {isOn = False}, traceDebugPeerSelectionInitiatorResponderTracer = OnOff {isOn = False}, traceDiffusionInitialization = OnOff {isOn = True}, traceDnsResolver = OnOff {isOn = False}, traceDnsSubscription = OnOff {isOn = True}, traceErrorPolicy = OnOff {isOn = True}, traceForge = OnOff {isOn = True}, traceForgeStateInfo = OnOff {isOn = True}, traceHandshake = OnOff {isOn = True}, traceInboundGovernor = OnOff {isOn = True}, traceInboundGovernorCounters = OnOff {isOn = True}, traceInboundGovernorTransitions = OnOff {isOn = True}, traceIpSubscription = OnOff {isOn = True}, traceKeepAliveClient = OnOff {isOn = False}, traceLedgerPeers = OnOff {isOn = True}, traceLocalChainSyncProtocol = OnOff {isOn = False}, traceLocalConnectionManager = OnOff {isOn = True}, traceLocalErrorPolicy = OnOff {isOn = True}, traceLocalHandshake = OnOff {isOn = True}, traceLocalInboundGovernor = OnOff {isOn = True}, traceLocalMux = OnOff {isOn = False}, traceLocalRootPeers = OnOff {isOn = True}, traceLocalServer = OnOff {isOn = True}, traceLocalStateQueryProtocol = OnOff {isOn = False}, traceLocalTxMonitorProtocol = OnOff {isOn = False}, traceLocalTxSubmissionProtocol = OnOff {isOn = False}, traceLocalTxSubmissionServer = OnOff {isOn = False}, traceMempool = OnOff {isOn = True}, traceMux = OnOff {isOn = False}, tracePeerSelection = OnOff {isOn = True}, tracePeerSelectionCounters = OnOff {isOn = True}, tracePeerSelectionActions = OnOff {isOn = True}, tracePublicRootPeers = OnOff {isOn = True}, traceServer = OnOff {isOn = True}, traceTxInbound = OnOff {isOn = False}, traceTxOutbound = OnOff {isOn = False}, traceTxSubmissionProtocol = OnOff {isOn = False}, traceTxSubmission2Protocol = OnOff {isOn = False}, traceGsm = OnOff {isOn = True}}), ncTraceForwardSocket = Nothing, ncMaybeMempoolCapacityOverride = Nothing, ncProtocolIdleTimeout = 5s, ncTimeWaitTimeout = 60s, ncChainSyncIdleTimeout = NoTimeoutOverride, ncAcceptedConnectionsLimit = AcceptedConnectionsLimit {acceptedConnectionsHardLimit = 512, acceptedConnectionsSoftLimit = 384, acceptedConnectionsDelay = 5s}, ncTargetNumberOfRootPeers = 60, ncTargetNumberOfKnownPeers = 100, ncTargetNumberOfEstablishedPeers = 50, ncTargetNumberOfActivePeers = 20, ncTargetNumberOfKnownBigLedgerPeers = 15, ncTargetNumberOfEstablishedBigLedgerPeers = 10, ncTargetNumberOfActiveBigLedgerPeers = 5, ncEnableP2P = DisabledP2PMode, ncPeerSharing = PeerSharingEnabled}
Jul 10 00:27:28 relay1 cardano-node[3813]: CardanoProtocolInstantiationError (CardanoProtocolInstantiationConwayGenesisReadError (GenesisDecodeError "/home/capy/cardano-my-node/conway-genesis.json" "Error in $: key \"minFeeRefScriptCostPerByte\" not found"))
Jul 10 00:27:28 relay1 cardano-node[3813]: cardano-node: Conway related : There was an error parsing the genesis file: "/home/capy/cardano-my-node/conway-genesis.json" Error: "Error in $: key \"minFeeRefScriptCostPerByte\" not found"
Jul 10 00:27:28 relay1 systemd[1]: cardano-node.service: Main process exited, code=exited, status=1/FAILURE
Jul 10 00:27:28 relay1 systemd[1]: cardano-node.service: Failed with result 'exit-code'.

Remove the reference to the conway genesis file and hash in your config and it will start. The conway genesis file isn’t ready for 9.0.0 yet, but it runs without it.

2 Likes

this worked for my in my case. however is there an ETA on when it will be ‘ready’ for conway genesis?

also what is the ‘conway genesis’ and how important is it? why would it not be compatible with 9.0.0? just curious.

It’s all part of the hardfork work. There’ll be a new conway genesis file in time (maybe a month?!), but there is also some more tooling work that is happening. So there’s no hurry at the moment, you’re not missing out on anything by still being on 8.9.4, or 8.12.2 (you shouldn’t be on an earlier version now, given that recent reward fee withdrawal issue).

1 Like

Thanks @jeremyisme . This is my outcome:

I hash the 2 lines for conway genesis file as below:

When i run ./gLiveView.sh, I got this error.

Could you help? Thanks!

You need to delete those lines. Comments using a # symbol are not supported in json files. The error message is telling you that your config.json file is now malformed.

1 Like

Hi @Terminada , I did your suggestion, another error popped out when i run gLiveView.sh. Please see below.

I have that same error with gLiveView. however the node itself should be working.

for some reason the gLiveView depends on the conway-genesis in order to function, but it seems as though that the node itself doesn’t need the conway-genesis. However later node operators will be issued a new conway-genesis which i believe will be the milestone marking the true moment of the cardano blockchain being handed over to the community.

(someone please correct me if i’m wrong anywhere, as i’m still learning as I come across new information)

To fix gLivewView.sh one can comment out the lines with CONWAY_GENESIS_JSON in the condition in the env file which is used by gLiveView.sh

  # if relative path is used, assume same parent dir as config
#  [[ ! ${CONWAY_GENESIS_JSON} =~ ^/ ]] && CONWAY_GENESIS_JSON="$(dirname "${CONFIG}")/${CONWAY_GENESIS_JSON}"
  [[ ! ${ALONZO_GENESIS_JSON} =~ ^/ ]] && ALONZO_GENESIS_JSON="$(dirname "${CONFIG}")/${ALONZO_GENESIS_JSON}"
  [[ ! ${BYRON_GENESIS_JSON} =~ ^/ ]] && BYRON_GENESIS_JSON="$(dirname "${CONFIG}")/${BYRON_GENESIS_JSON}"
  [[ ! ${GENESIS_JSON} =~ ^/ ]] && GENESIS_JSON="$(dirname "${CONFIG}")/${GENESIS_JSON}"
  # if genesis files not found, exit with rc 1
#  [[ ! -f "${CONWAY_GENESIS_JSON}" ]] && echo "Conway genesis file not found: ${CONWAY_GENESIS_JSON}" && return 1
  [[ ! -f "${ALONZO_GENESIS_JSON}" ]] && echo "Alonzo genesis file not found: ${ALONZO_GENESIS_JSON}" && return 1
  [[ ! -f "${BYRON_GENESIS_JSON}" ]] && echo "Byron genesis file not found: ${BYRON_GENESIS_JSON}" && return 1
  [[ ! -f "${GENESIS_JSON}" ]] && echo "Shelley genesis file not found: ${GENESIS_JSON}" && return 1
1 Like

It is better to upgrade rather sooner than later because the hardfork is only happening if 75% of pools have upgraded. There weren’t any problems after the upgrade.

I mean there is no rush for doing it today. Even if you upgrade to 9.0.0 it won’t trigger the hard fork. There still needs to be a new conway genesis issued, so it is still a few weeks away, at least. So for all the problems people are having with their config, gLiveView, etc. it is probabaly better to wait until v9 is fully supported.

But, run 9.0.0 on preview, pre-prod, and keep testing. But if you are worried about your block production, and your node setup, be conservative and careful.

There is no problem with gLiveView - only with the missing conway genesis file. Which can be easily mitigated by commenting out the check in the env file.

It is not necessary to upgrade today, but we don’t want to block this important step forward just be because some handling issues.

Thank you for everyone’s help!
Let me summarize here in case anyone need to know.

The solution for now until the new conway-genesis.json release is as below:

Step 1:
Remove the conway-genesis.json lines from config.json.

Step 2:
Remove/comment the conway_genesis related lines from env file.

Everything should work.
Thank you again everyone. Have a good day!

In what sense is this a solution? Removing the Conway lines (obviously) yields just another error:

cardano-node[1420138]: Error in $: key "ConwayGenesisFile" not found

Since we are already on 9.1.0 all the fuss about ConwayGenesisFile is now obsolete. 9.1.0 comes with that file and is the version that will be the right one for Chang hardfork.