flare-foundation / go-songbird Goto Github PK
View Code? Open in Web Editor NEWLicense: BSD 3-Clause "New" or "Revised" License
License: BSD 3-Clause "New" or "Revised" License
We currently don't provide any static list of beacons for any of the networks. This is a security risk, because all of the beacons are injected through the command line parameters. If an attacker manages to get someone to change the related command line parameters, he can put nodes on an alternative network that he controls.
By having a small set of nodes that are static and always used for bootstrapping, we can avoid this problem. Even with an invalid command line parameter, some of the nodes will be correct, and the node will at least be able to tell something strange is going on.
Sometimes, nodes will fail to initialize the C-Chain on start-up, which leads to messages not being processed because of an unknown chain, which in turns leads to bootstrapping failure:
Failed run:
➜ flare git:(78f063ca) ./build/flare --network-id=coston --http-host 0.0.0.0 \
--bootstrap-ips="$(curl -m 10 -sX POST --data '{ "jsonrpc":"2.0", "id":1, "method":"info.getNodeIP" }' -H 'content-type:application/json;' https://coston.flare.network/ext/info | jq -r ".result.ip")" \
--bootstrap-ids="$(curl -m 10 -sX POST --data '{ "jsonrpc":"2.0", "id":1, "method":"info.getNodeID" }' -H 'content-type:application/json;' https://coston.flare.network/ext/info | jq -r ".result.nodeID")"
( ( (
)\ ) )\ ) ( )\ )
(()/( (()/( )\ (()/( (
/(_)) /(_))((((_)( /(_)))\
(_))_|(_)) )\ _ )\ (_)) ((_)
| |_ | | (_)_\(_)| _ \| __|
| __| | |__ / _ \ | /| _|
|_| |____| /_/ \_\ |_|_\|___|
INFO [02-26|16:45:31.704] database/leveldb/db.go#121: leveldb config: {"blockCacheCapacity":12582912,"blockSize":0,"compactionExpandLimitFactor":0,"compactionGPOverlapsFactor":0,"compactionL0Trigger":0,"compactionSourceLimitFactor":0,"compactionTableSize":0,"compactionTableSizeMultiplier":0,"compactionTableSizeMultiplierPerLevel":null,"compactionTotalSize":0,"compactionTotalSizeMultiplier":0,"openFilesCacheCapacity":64,"writeBuffer":6291456,"filterBitsPerKey":10}
WARN [02-26|16:45:31.717] app/process/process.go#123: UPnP or NAT-PMP router attach failed, you may not be listening publicly. Please confirm the settings in your router
INFO [02-26|16:45:31.717] node/node.go#1112: node version is: flare/0.5.2
INFO [02-26|16:45:31.717] node/node.go#1113: node ID is: NodeID-G35PbtWjs2DsSihe2FhPAN5yREomkTxNY
INFO [02-26|16:45:31.717] node/node.go#1114: current database version: v1.4.5
INFO [02-26|16:45:31.717] node/node.go#488: initializing API server
INFO [02-26|16:45:31.717] api/server/server.go#82: API created with allowed origins: [*]
INFO [02-26|16:45:31.717] node/node.go#808: initializing metrics API
INFO [02-26|16:45:31.717] api/server/server.go#219: adding route /ext/metrics
INFO [02-26|16:45:31.717] node/node.go#774: initializing keystore
INFO [02-26|16:45:31.718] node/node.go#785: initializing keystore API
INFO [02-26|16:45:31.718] api/server/server.go#219: adding route /ext/keystore
INFO [02-26|16:45:31.718] node/node.go#766: initializing SharedMemory
INFO [02-26|16:45:31.718] node/node.go#182: this node's IP is set to: "172.31.25.163:9651"
INFO [02-26|16:45:31.719] node/node.go#929: initializing Health API
INFO [02-26|16:45:31.719] api/server/server.go#219: adding route /ext/health
INFO [02-26|16:45:31.719] api/server/server.go#219: adding route /ext/health/readiness
INFO [02-26|16:45:31.719] api/server/server.go#219: adding route /ext/health/health
INFO [02-26|16:45:31.719] api/server/server.go#219: adding route /ext/health/liveness
INFO [02-26|16:45:31.719] node/node.go#534: adding the default VM aliases
INFO [02-26|16:45:31.720] api/server/server.go#219: adding route /ext/vm/mgj786NP7uDwBCcq6YwThhaN8FLyybkCa4zBWTQbNgmK6k9A6/rpc
INFO [02-26|16:45:31.720] api/server/server.go#219: adding route /ext/vm/rWhpuQPF1kb72esV2momhMuTYGkEb1oL29pt2EBXWmSy4kxnT
INFO [02-26|16:45:31.720] api/server/server.go#219: adding route /ext/vm/jvYyfQTxGMJLuGWa55kdP2p2zSUYsQ5Raupu4TW34ZAUBAbtq
INFO [02-26|16:45:31.720] node/node.go#839: node config:
{"httpConfig":{"apiConfig":{"authConfig":{"apiRequireAuthToken":false},"indexerConfig":{"indexAPIEnabled":false,"indexAllowIncomplete":false},"ipcConfig":{"ipcAPIEnabled":false,"ipcPath":"/tmp","ipcDefaultChainIDs":null},"adminAPIEnabled":false,"infoAPIEnabled":true,"keystoreAPIEnabled":true,"metricsAPIEnabled":true,"healthAPIEnabled":true},"httpHost":"0.0.0.0","httpPort":9650,"httpsEnabled":false,"apiAllowedOrigins":["*"],"shutdownTimeout":10000000000,"shutdownWait":0},"ipConfig":{"ip":{"ip":"172.31.25.163","port":9651},"attemptedNATTraversal":true,"dynamicUpdateDuration":300000000000},"stakingConfig":{"uptimeRequirement":0.8,"minValidatorStake":1000000000,"maxValidatorStake":3000000000000000,"minDelegatorStake":1000000000,"minDelegationFee":20000,"minStakeDuration":86400000000000,"maxStakeDuration":31536000000000000,"rewardConfig":{"maxConsumptionRate":120000,"minConsumptionRate":100000,"mintingPeriod":31536000000000000,"supplyCap":720000000000000000},"enableStaking":true,"disabledStakingWeight":100,"stakingKeyPath":"/home/ec2-user/.flare/staking/staker.key","stakingCertPath":"/home/ec2-user/.flare/staking/staker.crt"},"txFeeConfig":{"txFee":1000000,"createAssetTxFee":10000000,"createSubnetTxFee":100000000,"createBlockchainTxFee":100000000},"bootstrapConfig":{"retryBootstrap":true,"retryBootstrapWarnFrequency":50,"bootstrapBeaconConnectionTimeout":60000000000,"bootstrapAncestorsMaxContainersSent":2000,"bootstrapAncestorsMaxContainersReceived":2000,"bootstrapMaxTimeGetAncestors":50000000,"bootstrapIDs":["CAAFL413GxJEKxUgF7dHWAHYDmfQRKWp3"],"bootstrapIPs":[{"ip":"34.159.134.207","port":9651}]},"databaseConfig":{"path":"/home/ec2-user/.flare/db/coston","name":"leveldb"},"avaxAssetID":"sMWvCcweHFoG4SE1SSVtiwosqezUW8tAA77t7BhAS7RUh6ms4","networkID":7,"enableAssertions":true,"enableCrypto":true,"healthCheckFreq":30000000000,"networkConfig":{"healthConfig":{"minConnectedPeers":1,"maxTimeSinceMsgReceived":60000000000,"maxTimeSinceMsgSent":60000000000,"maxPortionSendQueueBytesFull":0.9,"maxSendFailRate":0.9,"maxSendFailRateHalflife":10000000000},"peerListGossipConfig":{"peerListSize":20,"peerListGossipSize":50,"peerListStakerGossipFraction":2,"peerListGossipFreq":60000000000},"gossipConfig":{"gossipAcceptedFrontierSize":35,"gossipOnAcceptSize":20,"appGossipNonValidatorSize":0,"appGossipValidatorSize":10},"timeoutConfigs":{"getVersionTimeout":10000000000,"pingPongTimeout":30000000000,"readHandshakeTimeout":15000000000,"peerAliasTimeout":600000000000},"delayConfig":{"initialReconnectDelay":1000000000,"maxReconnectDelay":3600000000000},"throttlerConfig":{"inboundConnUpgradeThrottlerConfig":{"upgradeCooldown":10000000000,"maxRecentConnsUpgraded":2560},"inboundMsgThrottlerConfig":{"vdrAllocSize":33554432,"atLargeAllocSize":6291456,"nodeMaxAtLargeBytes":2097152,"bandwidthRefillRate":524288,"bandwidthMaxBurstRate":2097152,"maxProcessingMsgsPerNode":1024},"outboundMsgThrottlerConfig":{"vdrAllocSize":33554432,"atLargeAllocSize":6291456,"nodeMaxAtLargeBytes":2097152},"maxIncomingConnsPerSec":256},"dialerConfig":{"throttleRps":50,"connectionTimeout":30000000000},"namespace":"network","myNodeID":"G35PbtWjs2DsSihe2FhPAN5yREomkTxNY","myIP":{"ip":"172.31.25.163","port":9651},"networkID":7,"maxClockDifference":60000000000,"pingFrequency":22500000000,"allowPrivateIPs":true,"compressionEnabled":true,"whitelistedSubnets":[],"beacons":{},"validators":{},"uptimeMetricFreq":30000000000,"uptimeRequirement":0.8,"requireValidatorToConnect":false},"adaptiveTimeoutConfig":{"initialTimeout":5000000000,"minimumTimeout":2000000000,"maximumTimeout":10000000000,"timeoutCoefficient":2,"timeoutHalflife":300000000000},"benchlistConfig":{"threshold":10,"minimumFailingDuration":150000000000,"duration":900000000000,"maxPortion":0.08333333333333333,"peerSummaryEnabled":false},"profilerConfig":{"dir":"/home/ec2-user/.flare/profiles","enabled":false,"freq":900000000000,"maxNumFiles":5},"loggingConfig":{"rotationInterval":86400000000000,"fileSize":8388608,"rotationSize":7,"flushSize":1,"disableLogging":false,"disableDisplaying":false,"disableContextualDisplaying":false,"disableFlushOnWrite":false,"assertions":false,"logLevel":"INFO","displayLevel":"INFO","displayHighlight":"COLORS"},"pluginDir":"/home/ec2-user/flare/build/plugins","consensusParams":{"k":20,"alpha":15,"betaVirtuous":15,"betaRogue":20,"concurrentRepolls":4,"optimalProcessing":50,"maxOutstandingItems":1024,"maxItemProcessingTime":120000000000,"parents":5,"batchSize":30},"meterVMEnabled":true,"routerHealthConfig":{"maxDropRate":1,"maxDropRateHalflife":10000000000,"maxOutstandingRequests":1024,"maxOutstandingDuration":300000000000,"maxRunTimeRequests":10000000000},"consensusShutdownTimeout":5000000000,"consensusGossipFreq":10000000000,"whitelistedSubnets":[],"subnetConfigs":{},"resetProposerVMHeightIndex":false}
INFO [02-26|16:45:31.720] node/node.go#841: skipping admin API initialization because it has been disabled
INFO [02-26|16:45:31.720] node/node.go#889: initializing info API
INFO [02-26|16:45:31.721] api/server/server.go#219: adding route /ext/info
INFO [02-26|16:45:31.721] node/node.go#1051: skipping ipc API initialization because it has been disabled
INFO [02-26|16:45:31.721] node/node.go#1064: initializing chain aliases
INFO [02-26|16:45:31.721] node/node.go#1082: initializing API aliases
INFO [02-26|16:45:31.721] node/node.go#864: skipping profiler initialization because it has been disabled
INFO [02-26|16:45:31.721] node/node.go#474: initializing chains
INFO [02-26|16:45:31.721] chains/manager.go#253: creating chain:
ID: 11111111111111111111111111111111LpoYY
VMID:rWhpuQPF1kb72esV2momhMuTYGkEb1oL29pt2EBXWmSy4kxnT
INFO [02-26|16:45:31.723] <P Chain> vms/platformvm/vm.go#202: initializing last accepted block as 2RQJxpDt3t2MnEFZsBKWSSy6GUCAJXzWxsLqvAHkjk4BrPPyKt
INFO [02-26|16:45:31.724] <P Chain> snow/engine/snowman/transitive.go#67: initializing consensus engine
INFO [02-26|16:45:31.724] <P Chain> snow/engine/snowman/bootstrap/bootstrapper.go#222: Starting bootstrap...
INFO [02-26|16:45:31.725] api/server/server.go#203: adding route /ext/bc/11111111111111111111111111111111LpoYY
INFO [02-26|16:45:31.725] api/server/server.go#114: HTTP API server listening on "0.0.0.0:9650"
FATAL[02-26|16:46:31.719] node/node.go#227: Failed to connect to bootstrap nodes. Node shutting down...
INFO [02-26|16:46:31.719] node/node.go#1215: shutting down node with exit code 1
INFO [02-26|16:46:31.719] ipcs/chainipc.go#101: shutting down chain IPCs
INFO [02-26|16:46:31.719] chains/manager.go#916: shutting down chain manager
INFO [02-26|16:46:31.719] snow/networking/router/chain_router.go#250: shutting down chain router
INFO [02-26|16:46:31.719] <P Chain> snow/engine/snowman/transitive.go#282: shutting down consensus engine
INFO [02-26|16:46:31.719] network/network.go#690: shutting down network
INFO [02-26|16:46:31.720] node/node.go#1256: cleaning up plugin subprocesses
INFO [02-26|16:46:31.720] node/node.go#1259: finished node shutdown
INFO [02-26|16:46:31.720] nat/nat.go#152: Unmapped all ports
Successful run:
➜ flare git:(78f063ca) ./build/flare --network-id=coston --http-host 0.0.0.0 \
--bootstrap-ips="$(curl -m 10 -sX POST --data '{ "jsonrpc":"2.0", "id":1, "method":"info.getNodeIP" }' -H 'content-type:application/json;' https://coston.flare.network/ext/info | jq -r ".result.ip")" \
--bootstrap-ids="$(curl -m 10 -sX POST --data '{ "jsonrpc":"2.0", "id":1, "method":"info.getNodeID" }' -H 'content-type:application/json;' https://coston.flare.network/ext/info | jq -r ".result.nodeID")"
( ( (
)\ ) )\ ) ( )\ )
(()/( (()/( )\ (()/( (
/(_)) /(_))((((_)( /(_)))\
(_))_|(_)) )\ _ )\ (_)) ((_)
| |_ | | (_)_\(_)| _ \| __|
| __| | |__ / _ \ | /| _|
|_| |____| /_/ \_\ |_|_\|___|
INFO [02-26|16:49:16.176] database/leveldb/db.go#121: leveldb config: {"blockCacheCapacity":12582912,"blockSize":0,"compactionExpandLimitFactor":0,"compactionGPOverlapsFactor":0,"compactionL0Trigger":0,"compactionSourceLimitFactor":0,"compactionTableSize":0,"compactionTableSizeMultiplier":0,"compactionTableSizeMultiplierPerLevel":null,"compactionTotalSize":0,"compactionTotalSizeMultiplier":0,"openFilesCacheCapacity":64,"writeBuffer":6291456,"filterBitsPerKey":10}
WARN [02-26|16:49:16.188] app/process/process.go#123: UPnP or NAT-PMP router attach failed, you may not be listening publicly. Please confirm the settings in your router
INFO [02-26|16:49:16.188] node/node.go#1112: node version is: flare/0.5.2
INFO [02-26|16:49:16.188] node/node.go#1113: node ID is: NodeID-G35PbtWjs2DsSihe2FhPAN5yREomkTxNY
INFO [02-26|16:49:16.188] node/node.go#1114: current database version: v1.4.5
INFO [02-26|16:49:16.188] node/node.go#488: initializing API server
INFO [02-26|16:49:16.188] api/server/server.go#82: API created with allowed origins: [*]
INFO [02-26|16:49:16.188] node/node.go#808: initializing metrics API
INFO [02-26|16:49:16.188] api/server/server.go#219: adding route /ext/metrics
INFO [02-26|16:49:16.188] node/node.go#774: initializing keystore
INFO [02-26|16:49:16.188] node/node.go#785: initializing keystore API
INFO [02-26|16:49:16.188] api/server/server.go#219: adding route /ext/keystore
INFO [02-26|16:49:16.188] node/node.go#766: initializing SharedMemory
INFO [02-26|16:49:16.189] node/node.go#182: this node's IP is set to: "172.31.25.163:9651"
INFO [02-26|16:49:16.190] node/node.go#929: initializing Health API
INFO [02-26|16:49:16.190] api/server/server.go#219: adding route /ext/health
INFO [02-26|16:49:16.190] api/server/server.go#219: adding route /ext/health/readiness
INFO [02-26|16:49:16.190] api/server/server.go#219: adding route /ext/health/health
INFO [02-26|16:49:16.190] api/server/server.go#219: adding route /ext/health/liveness
INFO [02-26|16:49:16.190] node/node.go#534: adding the default VM aliases
INFO [02-26|16:49:16.190] api/server/server.go#219: adding route /ext/vm/rWhpuQPF1kb72esV2momhMuTYGkEb1oL29pt2EBXWmSy4kxnT
INFO [02-26|16:49:16.190] api/server/server.go#219: adding route /ext/vm/jvYyfQTxGMJLuGWa55kdP2p2zSUYsQ5Raupu4TW34ZAUBAbtq
INFO [02-26|16:49:16.190] api/server/server.go#219: adding route /ext/vm/mgj786NP7uDwBCcq6YwThhaN8FLyybkCa4zBWTQbNgmK6k9A6/rpc
INFO [02-26|16:49:16.191] node/node.go#839: node config:
{"httpConfig":{"apiConfig":{"authConfig":{"apiRequireAuthToken":false},"indexerConfig":{"indexAPIEnabled":false,"indexAllowIncomplete":false},"ipcConfig":{"ipcAPIEnabled":false,"ipcPath":"/tmp","ipcDefaultChainIDs":null},"adminAPIEnabled":false,"infoAPIEnabled":true,"keystoreAPIEnabled":true,"metricsAPIEnabled":true,"healthAPIEnabled":true},"httpHost":"0.0.0.0","httpPort":9650,"httpsEnabled":false,"apiAllowedOrigins":["*"],"shutdownTimeout":10000000000,"shutdownWait":0},"ipConfig":{"ip":{"ip":"172.31.25.163","port":9651},"attemptedNATTraversal":true,"dynamicUpdateDuration":300000000000},"stakingConfig":{"uptimeRequirement":0.8,"minValidatorStake":1000000000,"maxValidatorStake":3000000000000000,"minDelegatorStake":1000000000,"minDelegationFee":20000,"minStakeDuration":86400000000000,"maxStakeDuration":31536000000000000,"rewardConfig":{"maxConsumptionRate":120000,"minConsumptionRate":100000,"mintingPeriod":31536000000000000,"supplyCap":720000000000000000},"enableStaking":true,"disabledStakingWeight":100,"stakingKeyPath":"/home/ec2-user/.flare/staking/staker.key","stakingCertPath":"/home/ec2-user/.flare/staking/staker.crt"},"txFeeConfig":{"txFee":1000000,"createAssetTxFee":10000000,"createSubnetTxFee":100000000,"createBlockchainTxFee":100000000},"bootstrapConfig":{"retryBootstrap":true,"retryBootstrapWarnFrequency":50,"bootstrapBeaconConnectionTimeout":60000000000,"bootstrapAncestorsMaxContainersSent":2000,"bootstrapAncestorsMaxContainersReceived":2000,"bootstrapMaxTimeGetAncestors":50000000,"bootstrapIDs":["HECDm3zTt9hRBFuz9BTp1iV2mMQPiejEF"],"bootstrapIPs":[{"ip":"34.159.134.207","port":9651}]},"databaseConfig":{"path":"/home/ec2-user/.flare/db/coston","name":"leveldb"},"avaxAssetID":"sMWvCcweHFoG4SE1SSVtiwosqezUW8tAA77t7BhAS7RUh6ms4","networkID":7,"enableAssertions":true,"enableCrypto":true,"healthCheckFreq":30000000000,"networkConfig":{"healthConfig":{"minConnectedPeers":1,"maxTimeSinceMsgReceived":60000000000,"maxTimeSinceMsgSent":60000000000,"maxPortionSendQueueBytesFull":0.9,"maxSendFailRate":0.9,"maxSendFailRateHalflife":10000000000},"peerListGossipConfig":{"peerListSize":20,"peerListGossipSize":50,"peerListStakerGossipFraction":2,"peerListGossipFreq":60000000000},"gossipConfig":{"gossipAcceptedFrontierSize":35,"gossipOnAcceptSize":20,"appGossipNonValidatorSize":0,"appGossipValidatorSize":10},"timeoutConfigs":{"getVersionTimeout":10000000000,"pingPongTimeout":30000000000,"readHandshakeTimeout":15000000000,"peerAliasTimeout":600000000000},"delayConfig":{"initialReconnectDelay":1000000000,"maxReconnectDelay":3600000000000},"throttlerConfig":{"inboundConnUpgradeThrottlerConfig":{"upgradeCooldown":10000000000,"maxRecentConnsUpgraded":2560},"inboundMsgThrottlerConfig":{"vdrAllocSize":33554432,"atLargeAllocSize":6291456,"nodeMaxAtLargeBytes":2097152,"bandwidthRefillRate":524288,"bandwidthMaxBurstRate":2097152,"maxProcessingMsgsPerNode":1024},"outboundMsgThrottlerConfig":{"vdrAllocSize":33554432,"atLargeAllocSize":6291456,"nodeMaxAtLargeBytes":2097152},"maxIncomingConnsPerSec":256},"dialerConfig":{"throttleRps":50,"connectionTimeout":30000000000},"namespace":"network","myNodeID":"G35PbtWjs2DsSihe2FhPAN5yREomkTxNY","myIP":{"ip":"172.31.25.163","port":9651},"networkID":7,"maxClockDifference":60000000000,"pingFrequency":22500000000,"allowPrivateIPs":true,"compressionEnabled":true,"whitelistedSubnets":[],"beacons":{},"validators":{},"uptimeMetricFreq":30000000000,"uptimeRequirement":0.8,"requireValidatorToConnect":false},"adaptiveTimeoutConfig":{"initialTimeout":5000000000,"minimumTimeout":2000000000,"maximumTimeout":10000000000,"timeoutCoefficient":2,"timeoutHalflife":300000000000},"benchlistConfig":{"threshold":10,"minimumFailingDuration":150000000000,"duration":900000000000,"maxPortion":0.08333333333333333,"peerSummaryEnabled":false},"profilerConfig":{"dir":"/home/ec2-user/.flare/profiles","enabled":false,"freq":900000000000,"maxNumFiles":5},"loggingConfig":{"rotationInterval":86400000000000,"fileSize":8388608,"rotationSize":7,"flushSize":1,"disableLogging":false,"disableDisplaying":false,"disableContextualDisplaying":false,"disableFlushOnWrite":false,"assertions":false,"logLevel":"INFO","displayLevel":"INFO","displayHighlight":"COLORS"},"pluginDir":"/home/ec2-user/flare/build/plugins","consensusParams":{"k":20,"alpha":15,"betaVirtuous":15,"betaRogue":20,"concurrentRepolls":4,"optimalProcessing":50,"maxOutstandingItems":1024,"maxItemProcessingTime":120000000000,"parents":5,"batchSize":30},"meterVMEnabled":true,"routerHealthConfig":{"maxDropRate":1,"maxDropRateHalflife":10000000000,"maxOutstandingRequests":1024,"maxOutstandingDuration":300000000000,"maxRunTimeRequests":10000000000},"consensusShutdownTimeout":5000000000,"consensusGossipFreq":10000000000,"whitelistedSubnets":[],"subnetConfigs":{},"resetProposerVMHeightIndex":false}
INFO [02-26|16:49:16.191] node/node.go#841: skipping admin API initialization because it has been disabled
INFO [02-26|16:49:16.191] node/node.go#889: initializing info API
INFO [02-26|16:49:16.191] api/server/server.go#219: adding route /ext/info
INFO [02-26|16:49:16.191] node/node.go#1051: skipping ipc API initialization because it has been disabled
INFO [02-26|16:49:16.191] node/node.go#1064: initializing chain aliases
INFO [02-26|16:49:16.191] node/node.go#1082: initializing API aliases
INFO [02-26|16:49:16.192] node/node.go#864: skipping profiler initialization because it has been disabled
INFO [02-26|16:49:16.192] node/node.go#474: initializing chains
INFO [02-26|16:49:16.192] chains/manager.go#253: creating chain:
ID: 11111111111111111111111111111111LpoYY
VMID:rWhpuQPF1kb72esV2momhMuTYGkEb1oL29pt2EBXWmSy4kxnT
INFO [02-26|16:49:16.193] <P Chain> vms/platformvm/vm.go#202: initializing last accepted block as 2RQJxpDt3t2MnEFZsBKWSSy6GUCAJXzWxsLqvAHkjk4BrPPyKt
INFO [02-26|16:49:16.194] <P Chain> snow/engine/snowman/transitive.go#67: initializing consensus engine
INFO [02-26|16:49:16.194] <P Chain> snow/engine/snowman/bootstrap/bootstrapper.go#222: Starting bootstrap...
INFO [02-26|16:49:16.194] api/server/server.go#114: HTTP API server listening on "0.0.0.0:9650"
INFO [02-26|16:49:16.194] api/server/server.go#203: adding route /ext/bc/11111111111111111111111111111111LpoYY
INFO [02-26|16:49:16.282] <P Chain> snow/engine/common/bootstrapper.go#235: Bootstrapping started syncing with 1 vertices in the accepted frontier
INFO [02-26|16:49:16.282] <P Chain> snow/engine/snowman/bootstrap/bootstrapper.go#424: bootstrapping fetched 0 blocks. Executing state transitions...
INFO [02-26|16:49:16.282] <P Chain> snow/engine/common/queue/jobs.go#181: executed 0 operations
INFO [02-26|16:49:16.282] chains/manager.go#253: creating chain:
ID: 2wcJd3HZL4EAoQDfGhyeHGJU55wizganSzD9EvdDLJX3B5u5Be
VMID:mgj786NP7uDwBCcq6YwThhaN8FLyybkCa4zBWTQbNgmK6k9A6
INFO [02-26|16:49:16.283] Initializing Coreth VM Version=v0.3.1 Config="{\"snowman-api-enabled\":false,\"coreth-admin-api-enabled\":false,\"coreth-admin-api-dir\":\"\",\"eth-apis\":[\"public-eth\",\"public-eth-filter\",\"net\",\"web3\",\"internal-public-eth\",\"internal-public-blockchain\",\"internal-public-transaction-pool\"],\"continuous-profiler-dir\":\"\",\"continuous-profiler-frequency\":{\"Duration\":900000000000},\"continuous-profiler-max-files\":5,\"rpc-gas-cap\":50000000,\"rpc-tx-fee-cap\":100,\"preimages-enabled\":false,\"pruning-enabled\":false,\"snapshot-async\":true,\"snapshot-verification-enabled\":false,\"metrics-enabled\":true,\"metrics-expensive-enabled\":false,\"local-txs-enabled\":false,\"api-max-duration\":{\"Duration\":0},\"ws-cpu-refill-rate\":{\"Duration\":0},\"ws-cpu-max-stored\":{\"Duration\":0},\"api-max-blocks-per-request\":0,\"allow-unfinalized-queries\":false,\"allow-unprotected-txs\":false,\"keystore-directory\":\"\",\"keystore-external-signer\":\"\",\"keystore-insecure-unlock-allowed\":false,\"remote-tx-gossip-only-enabled\":false,\"tx-regossip-frequency\":{\"Duration\":60000000000},\"tx-regossip-max-size\":15,\"log-level\":\"debug\",\"offline-pruning-enabled\":false,\"offline-pruning-bloom-filter-size\":512,\"offline-pruning-data-directory\":\"\",\"max-outbound-active-requests\":8}"
DEBUG[02-26|16:49:16.285] FS scan times list="17.436µs" set=377ns diff="1.001µs"
INFO [02-26|16:49:16.285] Allocated trie memory caches clean=228.00MiB dirty=256.00MiB
INFO [02-26|16:49:16.287] Persisted trie from memory database nodes=17 size=2.78KiB time="63.056µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [02-26|16:49:16.287] Initialised chain configuration config="{ChainID: 16 Homestead: 0 DAO: 0 DAOSupport: true EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 0, Muir Glacier: 0, Apricot Phase 1: 946684800, Apricot Phase 2: 946684800, Apricot Phase 3: 1645797600, Apricot Phase 4: 1645801200, Apricot Phase 5: 1645804800, Engine: Dummy Consensus Engine}"
INFO [02-26|16:49:16.287] Initialising Ethereum protocol network=16 dbversion=8
INFO [02-26|16:49:16.288] Loaded most recent local header number=59596 hash=03e3d0..dc0f17 age=4m16s
INFO [02-26|16:49:16.288] Loaded most recent local full block number=59596 hash=03e3d0..dc0f17 age=4m16s
INFO [02-26|16:49:16.288] Initializing snapshots async=true
DEBUG[02-26|16:49:16.289] Reinjecting stale transactions count=0
INFO [02-26|16:49:16.289] initializing atomic trie c=atomicTrie lastAcceptedBlockNumber=59596
INFO [02-26|16:49:16.289] committed atomic trie c=atomicTrie hash=0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421 height=57344
DEBUG[02-26|16:49:16.289] Persisted trie from memory database nodes=0 size=0.00B time="4.398µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [02-26|16:49:16.289] finished initializing atomic trie c=atomicTrie lastAcceptedBlockNumber=59596 preCommitEntriesIndexed=0 postCommitEntriesIndexed=0 time="207.908µs"
INFO [02-26|16:49:16.289] Transaction pool price threshold updated price=470,000,000,000
INFO [02-26|16:49:16.289] Transaction pool price threshold updated price=225,000,000,000
INFO [02-26|16:49:16.289] Transaction pool price threshold updated price=0
INFO [02-26|16:49:16.289] lastAccepted = 0x03e3d0a1b2615d0be50bf89cfb124580a777c8fec63aa525c9eb97afb3dc0f17
INFO [02-26|16:49:16.290] <C Chain> snow/engine/snowman/transitive.go#67: initializing consensus engine
INFO [02-26|16:49:16.290] <C Chain> vms/proposervm/vm.go#214: block height indexing is already complete
INFO [02-26|16:49:16.291] Enabled APIs: public-eth, public-eth-filter, net, web3, internal-public-eth, internal-public-blockchain, internal-public-transaction-pool, avax
DEBUG[02-26|16:49:16.291] Allowed origin(s) for WS RPC interface [*]
INFO [02-26|16:49:16.291] api/server/server.go#203: adding route /ext/bc/2wcJd3HZL4EAoQDfGhyeHGJU55wizganSzD9EvdDLJX3B5u5Be/ws
INFO [02-26|16:49:16.291] <C Chain> snow/engine/snowman/bootstrap/bootstrapper.go#222: Starting bootstrap...
INFO [02-26|16:49:16.291] api/server/server.go#203: adding route /ext/bc/2wcJd3HZL4EAoQDfGhyeHGJU55wizganSzD9EvdDLJX3B5u5Be/avax
INFO [02-26|16:49:16.291] chains/manager.go#253: creating chain:
ID: 8S5vg8ycMqULMMq2CzrRh3qqbFWjs6a35H8UwNAaS83v9Ynxa
VMID:jvYyfQTxGMJLuGWa55kdP2p2zSUYsQ5Raupu4TW34ZAUBAbtq
INFO [02-26|16:49:16.291] api/server/server.go#203: adding route /ext/bc/2wcJd3HZL4EAoQDfGhyeHGJU55wizganSzD9EvdDLJX3B5u5Be/rpc
DEBUG[02-26|16:49:16.291] adding new peer nodeID=G35PbtWjs2DsSihe2FhPAN5yREomkTxNY
DEBUG[02-26|16:49:16.291] skipping registering self as peer
DEBUG[02-26|16:49:16.291] adding new peer nodeID=HECDm3zTt9hRBFuz9BTp1iV2mMQPiejEF
INFO [02-26|16:49:16.292] <X Chain> vms/avm/vm.go#445: Fee payments are using Asset with Alias: AVAX, AssetID: sMWvCcweHFoG4SE1SSVtiwosqezUW8tAA77t7BhAS7RUh6ms4
INFO [02-26|16:49:16.292] <X Chain> vms/avm/vm.go#229: address transaction indexing is disabled
INFO [02-26|16:49:16.292] <X Chain> snow/engine/avalanche/transitive.go#71: initializing consensus engine
INFO [02-26|16:49:16.292] <X Chain> snow/engine/avalanche/bootstrap/bootstrapper.go#269: Starting bootstrap...
INFO [02-26|16:49:16.292] <P Chain> snow/engine/snowman/bootstrap/bootstrapper.go#463: waiting for the remaining chains in this subnet to finish syncing
INFO [02-26|16:49:16.293] api/server/server.go#203: adding route /ext/bc/8S5vg8ycMqULMMq2CzrRh3qqbFWjs6a35H8UwNAaS83v9Ynxa/wallet
INFO [02-26|16:49:16.293] api/server/server.go#203: adding route /ext/bc/8S5vg8ycMqULMMq2CzrRh3qqbFWjs6a35H8UwNAaS83v9Ynxa/events
INFO [02-26|16:49:16.293] api/server/server.go#203: adding route /ext/bc/8S5vg8ycMqULMMq2CzrRh3qqbFWjs6a35H8UwNAaS83v9Ynxa
DEBUG[02-26|16:49:16.330] adding new peer nodeID=FPAwqHjs8Mw8Cuki5bkm3vSVisZr8t2Lu
DEBUG[02-26|16:49:16.355] adding new peer nodeID=5dDZXn99LCkDoEi6t9gTitZuQmhokxQTc
DEBUG[02-26|16:49:16.380] adding new peer nodeID=AQghDJTU3zuQj73itPtfTZz6CxsTQVD3R
DEBUG[02-26|16:49:16.384] adding new peer nodeID=EkH8wyEshzEQBToAdR7Fexxcj9rrmEEHZ
DEBUG[02-26|16:49:16.432] adding new peer nodeID=HaZ4HpanjndqSuN252chFsTysmdND5meA
DEBUG[02-26|16:49:19.287] FS scan times list="59.429µs" set=747ns diff="1.148µs"
INFO [02-26|16:49:19.750] <X Chain> snow/engine/common/bootstrapper.go#235: Bootstrapping started syncing with 0 vertices in the accepted frontier
INFO [02-26|16:49:19.750] <X Chain> snow/engine/avalanche/bootstrap/bootstrapper.go#483: bootstrapping fetched 0 vertices. Executing transaction state transitions...
INFO [02-26|16:49:19.750] <C Chain> snow/engine/common/bootstrapper.go#235: Bootstrapping started syncing with 1 vertices in the accepted frontier
INFO [02-26|16:49:19.750] <X Chain> snow/engine/common/queue/jobs.go#181: executed 0 operations
INFO [02-26|16:49:19.750] <X Chain> snow/engine/avalanche/bootstrap/bootstrapper.go#494: executing vertex state transitions...
INFO [02-26|16:49:19.750] <X Chain> snow/engine/common/queue/jobs.go#181: executed 0 operations
INFO [02-26|16:49:19.750] <X Chain> snow/engine/avalanche/bootstrap/bootstrapper.go#522: waiting for the remaining chains in this subnet to finish syncing
INFO [02-26|16:49:20.013] <C Chain> snow/engine/snowman/bootstrap/bootstrapper.go#424: bootstrapping fetched 12 blocks. Executing state transitions...
DEBUG[02-26|16:49:20.054] Persisted trie from memory database nodes=268 size=92.52KiB time=2.901146ms gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=-1148.00B
DEBUG[02-26|16:49:20.054] Inserted new block number=59597 hash=eed257..a143ea parentHash=03e3d0..dc0f17 uncles=0 txs=1 gas=312,216 elapsed=40.894ms root=f921d8..967ec1 baseFeePerGas=25,000,000,000 blockGasCost=0
DEBUG[02-26|16:49:20.054] Reinjecting stale transactions count=0
DEBUG[02-26|16:49:20.054] Accepting block eed257bb07d457172bb59156a726392aa4f3db01857a1a5442188baf1ba143ea (2pBNxRwiK4Jk16Brm9y2ZByjepbcvestyQBon3mwddwCau8JAv) at height 59597
DEBUG[02-26|16:49:20.054] Journalled generator progress progress=done
DEBUG[02-26|16:49:20.055] Journalled disk layer root=f921d8..967ec1 complete=true
DEBUG[02-26|16:49:20.055] Flattened snapshot tree blockHash=eed257..a143ea root=f921d8..967ec1 size=1 elapsed="447.217µs"
DEBUG[02-26|16:49:20.060] Persisted trie from memory database nodes=79 size=26.53KiB time="747.851µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=-1804.00B
This seems to only happen when the remote node is not a validator, i.e. we are bootstrapping through a non-validator beacon by explicitly setting the --bootstrap-ids
and --bootstrap-ips
flags.
Which ports need to be configured on the router for correct operation? Swears at startup:
- app/process/process.go#133: UPnP or NAT-PMP router connection error, maybe you are not listening publicly. Please confirm your router settings
- Failed to connect to bootstrap nodes. Node shutdown...
A lot of code on the Avalanche / Flare side of things (meaning not the Coreth side) ignores the hard fork timestamps from the genesis block, and only uses the hard-coded timestamps. This means that staging / local testing of hard forks is impossible for code on the Flare side.
if that mocking bird dont Sing. Then Daddy is going to buy you a Dimond Ring!
The following endpoint returns error 403
https://songbird.flare.network/ext/info
As part of the fAsset system it is required to prove that any outgoing transaction happened from a source address.
as the system is defined. the Agent can't send outgoing payments from any address on the bridged chain, without first declaring those transactions.
if the Agent does send an outgoing payment it will be penalized by liquidating its position.
The generic transaction type must only support payment types that are not supported by setPaymentFinality API.
So if a valid payment was sent. it must only be "proven" on the state connector through setPaymentFinality API
and should be rejected when sent to the API supporting proving a generic transaction
Where are the mainnet launch instructions?
I'm looking for documentation but can't find it.
I would like an example like this.
https://github.com/flare-foundation/flare#connecting-to-coston
https://github.com/flare-foundation/flare#connecting-to-songbird
At the moment, we are hijacking the validator manager's update function to return a static validator set. We should update the code so that we bootstrap using a static validator set from the genesis information instead, and then simply disable the updating of the set subsequently.
This would allow us to re-enable the genesis bootstrapping testing of validators, and would integrate the Flare logic more cleanly into Avalanche.
Through my investigation into why the new code base wasn't properly syncing with the Songbird network, I discovered that the Apricot Phase 3 hard fork has not been activated on the Songbird network, and will indeed never activate because it is disabled.
For past hard forks, their timing was defined in the configuration of the C-Chain genesis file, see: https://gitlab.com/flarenetwork/flare/-/blob/master/src/genesis/genesis_songbird.go#L23
"config": {
"chainId": 19,
"homesteadBlock": 0,
"daoForkBlock": 0,
"daoForkSupport": true,
"eip150Block": 0,
"eip150Hash": "0x2086799aeebeae135c246c65021c82b4e15a2c451340993aacfd2751886514f0",
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"muirGlacierBlock": 0,
"apricotPhase1BlockTimestamp": 0,
"apricotPhase2BlockTimestamp": 0
}
A timestamp of zero means that the fork is enabled from the start of the network.
However, the genesis file can not be modified after the initial network start, so newer forks were not included in the configuration of the C-Chain genesis file. In fact, Avalanche itself doesn't include any Apricot forks in the genesis file.
Instead, they keep a separate instance of hard-coded fork configurations for each network in the Coreth repository, see: https://github.com/ava-labs/coreth/blob/master/params/config.go#L90
// AvalancheFujiChainConfig is the configuration for the Fuji Test Network
AvalancheFujiChainConfig = &ChainConfig{
ChainID: AvalancheFujiChainID,
HomesteadBlock: big.NewInt(0),
DAOForkBlock: big.NewInt(0),
DAOForkSupport: true,
EIP150Block: big.NewInt(0),
EIP150Hash: common.HexToHash("0x2086799aeebeae135c246c65021c82b4e15a2c451340993aacfd2751886514f0"),
EIP155Block: big.NewInt(0),
EIP158Block: big.NewInt(0),
ByzantiumBlock: big.NewInt(0),
ConstantinopleBlock: big.NewInt(0),
PetersburgBlock: big.NewInt(0),
IstanbulBlock: big.NewInt(0),
MuirGlacierBlock: big.NewInt(0),
ApricotPhase1BlockTimestamp: big.NewInt(time.Date(2021, time.March, 26, 14, 0, 0, 0, time.UTC).Unix()),
ApricotPhase2BlockTimestamp: big.NewInt(time.Date(2021, time.May, 5, 14, 0, 0, 0, time.UTC).Unix()),
ApricotPhase3BlockTimestamp: big.NewInt(time.Date(2021, time.August, 16, 19, 0, 0, 0, time.UTC).Unix()),
ApricotPhase4BlockTimestamp: big.NewInt(time.Date(2021, time.September, 16, 21, 0, 0, 0, time.UTC).Unix()),
ApricotPhase5BlockTimestamp: big.NewInt(time.Date(2021, time.November, 24, 15, 0, 0, 0, time.UTC).Unix()),
}
This chain configuration overwrites the configuration in the C-Chain genesis block if the network has one of the hard-coded chain IDs, see: https://github.com/ava-labs/coreth/blob/master/plugin/evm/vm.go#L300
// Set the chain config for mainnet/fuji chain IDs
switch {
case g.Config.ChainID.Cmp(params.AvalancheMainnetChainID) == 0:
g.Config = params.AvalancheMainnetChainConfig
phase0BlockValidator.extDataHashes = mainnetExtDataHashes
case g.Config.ChainID.Cmp(params.AvalancheFujiChainID) == 0:
g.Config = params.AvalancheFujiChainConfig
phase0BlockValidator.extDataHashes = fujiExtDataHashes
case g.Config.ChainID.Cmp(params.AvalancheLocalChainID) == 0:
g.Config = params.AvalancheLocalChainConfig
}
However, the chain IDs are also redundantly defined in the Coreth repository, see: https://github.com/ava-labs/coreth/blob/master/params/config.go#L43
// Avalanche ChainIDs
var (
// AvalancheMainnetChainID ...
AvalancheMainnetChainID = big.NewInt(43114)
// AvalancheFujiChainID ...
AvalancheFujiChainID = big.NewInt(43113)
// AvalancheLocalChainID ...
AvalancheLocalChainID = big.NewInt(43112)
)
Unfortunately, in our previous repository, we did not update the chain ID in the Coreth repository. You would think that this would decode the value of the fork timestamp as zero, and thus enable the hard fork by default, but not so, see: https://github.com/ava-labs/coreth/blob/master/params/config.go#L158
// Apricot Phase 3 introduces dynamic fees and a modified version of the London Hard Fork from Ethereum (nil = no fork, 0 = already activated)
ApricotPhase3BlockTimestamp *big.Int `json:"apricotPhase3BlockTimestamp,omitempty"`
Pointers default to decoding as nil
with the default Go JSON decoder, which disabled the hard fork. Hence, we are running on Apricot Phase 2 on the EVM of the Songbird network currently.
However, Apricot Phase 3 is activated from the point of view of the Avalanche repository, which is defined here: https://github.com/ava-labs/avalanchego/blob/master/version/constants.go#L48
ApricotPhase3Times = map[uint32]time.Time{
constants.MainnetID: time.Date(2021, time.August, 24, 14, 0, 0, 0, time.UTC),
constants.FujiID: time.Date(2021, time.August, 16, 19, 0, 0, 0, time.UTC),
}
ApricotPhase3DefaultTime = time.Date(2020, time.December, 5, 5, 0, 0, 0, time.UTC)
Because on the Avalanche repository, the hard-coded fork configurations use the network IDs and are actually correctly defined, see: https://github.com/ava-labs/avalanchego/blob/master/utils/constants/network_ids.go#L20
const (
MainnetID uint32 = 1
CascadeID uint32 = 2
DenaliID uint32 = 3
EverestID uint32 = 4
FujiID uint32 = 5
)
My recommendation would be to plan for a full Apricot Phase 3 rollout as soon as possible.
--state-sync-enabled=true
--state-sync-skip-resume=false
--state-sync-min-blocks=100000
--state-sync-ids=
couldn't configure flags: unknown flag: --state-sync-enabled
I don't want to fetch the whole block from September just the recent ones.. Why state sync isn't working? Not added yet?
We removed some code that adds the set of validators to a monitoring for health checks. This allows our nodes to be healthy, even when using a customized static set of validators. However, we should check if we can re-enable the health checks and have them pass on top of the static list instead.
In order to harden the node for the main network deployment, we should remove all APIs that are related to the P-Chain and the X-Chain. This will avoid that anybody could find an exploit to mess with the network by using these two chains, which will be completely irrelevant.
After removing all of the APIs, we might also be able to remove a lot of the underlying code that exists to serve these APIs.
Our epoch is 1 week based on FTSO. So no need to get validators all the time.
In Flare, blocks are created by underlying chain validators, with the set of underlying chains being determined by the available FTSO assets. Each leader epoch, the FTSO data providers vote on the share of block generation each registered Flare leader has on his respective chain. This system is built in Solidity, so the information is held in a smart contract.
That being said, the Go portion of the system has to read the leaders from a smart contract and use them when sampling leaders in Avalanche consensus. This is complicated by the fact that the leader selection logic is as far removed from the EVM layer as possible, happening on the level of the Avalanche code base, while the EVM is executed deeply nested within in a binary plugin.
In order to expose the leaders, as found in the smart contract state, to the leader selection logic, we need to take the following steps:
Modify the windower of the sampling logic to take a hash of the parent block, so that we can disambiguate between blocks at the same height. This is not relevant when validators are held in the P-Chain state. In our case, the validators are held in the C-Chain state, so we need to handle ambiguous block heights, where validator sets might differ between one branch and another branch of the blockchain.
Remove the P-Chain height from the windower parameters, and instead use the block ID (which corresponds to the block hash at the EVM level) to retrieve the set of validators. In order to do so, we need to inject an additional component into the windower upon initialization, which wraps around a plugin API, which takes the block hash as a parameter, and returns the weighted list of validators at this block hash.
Create a plugin client and a plugin server using the Hashicorp GRPC plugin system, in its new namespace, which will be injected into this new component. It should exist in parallel to the VM namespace used by the Avalanche code base, so that we don't need to modify any of the existing interfaces.
On the Coreth side, where the GRPC plugin is initialized, we should create a secondary wrapper, which takes the VM pointer as a dependency, and uses it to extract the blockchain. This in turn allows us to create the necessary EVM context to execute our contract call to read the leaders when given a block hash.
$ curl --location --request POST 'http://127.0.0.1:9650/ext/bc/C/rpc' --header 'Content-Type: application/json' --data-raw '{
"id": "1",
"jsonrpc": "2.0",
"method": "eth_gasPrice",
"params": []
}'
{"jsonrpc":"2.0","id":"1","result":"0x0"}
Node version: 0.5.1
Our genesis blocks don't have any allocations, as we only use the C-Chain, for which we do initial supply in the genesis block. This broke a lot of tests from the Avalanche repository. We should revisit how we initialize, and review that everything that should be tested still gets tested.
والا من که اصلا سر در نمیارم که این چی هست و برای چی هست
Never recivied my Flare Spark tokens from Coinbase Wallet or Atomic Wallet.
Hi guys!
I have just updated to the version 0.6.4-api
running the node from the official Docker image.
Configuration parameters are in the log below. But the node freezes in the INFO message from the db.go
:
+ '[' 0 = 1 ']'
+ '[' 0 = 1 ']'
+ ./build/flare --http-host=0.0.0.0 --http-port=9650 --staking-port=9651 --public-ip=<my_ip_here> --db-dir=/flare/db/songbird/node1 --db-type=leveldb --bootstrap-ips= --bootstrap-ids= --chain-config-dir=/flare/config/songbird/node1 --log-dir=/flare/logs/songbird/node1 --log-level=debug --network-id=songbird
( ( (
)\ ) )\ ) ( )\ )
(()/( (()/( )\ (()/( (
/(_)) /(_))((((_)( /(_)))\
(_))_|(_)) )\ _ )\ (_)) ((_)
| |_ | | (_)_\(_)| _ \| __|
| __| | |__ / _ \ | /| _|
|_| |____| /_/ \_\ |_|_\|___|
INFO [10-13|15:02:36.698] database/leveldb/db.go#121: leveldb config: {"blockCacheCapacity":12582912,"blockSize":0,"compactionExpandLimitFactor":0,"compactionGPOverlapsFactor":0,"compactionL0Trigger":0,"compactionSourceLimitFactor":0,"compactionTableSize":0,"compactionTableSizeMultiplier":0,"compactionTableSizeMultiplierPerLevel":null,"compactionTotalSize":0,"compactionTotalSizeMultiplier":0,"openFilesCacheCapacity":64,"writeBuffer":6291456,"filterBitsPerKey":10}
And nothing happens afterwards. What is wrong?
Thank you in advance!
The currently deployed Songbird nodes will drop any peer that does not have the same application name (avalanche
), or differs in major version (v1
) or is before the minimum compatible version (v1.5.0
, v1.6.0
soon) of the protocol.
However, with our migration to our own full repository, we are introducing our own versioning, currently at v0.2.2
. In order to migrate to our own versioning cleanly, without needing to restart the whole network, we need to follow a three step process:
Version v0.2.2
already implements step one of this transition plan.
The State connector supports setPaymentFinality API
a few additional fields are required to enable the state connector to support all operations with the fAsset system:
In theory, we should have no need to run the P-Chain and the X-Chain anymore. Previously, the P-Chain was needed to get validators for the sub-networks. However, this is now done by the EVM (C-Chain). This means we should, in theory, be able to fully rip out the P-Chain and X-Chain code, and simply run the EVM alone.
There is a lot of code that deals with getting validators from the P-Chain, which should all no longer be needed. We can remove a huge chunk of code that is not in use anymore on our version of the codebase.
mkdir -p $GOPATH/pkg/mod/github.com/flare-foundation/flare@$flare_version
Is it OK? I would expect "/go-songbird" instead of "/flare"
Thanks,
Jiri
After upgrading Coreth to the latest upstream version (0.8.8-rc.0), we can also bump this repo. Since the Coreth dependency didn't change between 1.7.8 and 1.7.9 that was released today, we can just go to 1.7.9 right away.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.