fix: add explicit ordering to config script so presets are deterministic (#1483)

This commit is contained in:
Giuliano Mega 2026-07-01 13:24:36 -03:00 committed by GitHub
parent 0623c29de7
commit d94417a221
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 26 additions and 37 deletions

View File

@ -1,17 +1,5 @@
{
"presets": [
{
"name": "logos.dev",
"description": "Logos devnet",
"records": [
"spr:CiUIAhIhA11LamlswboRlyrpEXBubPQAr2WRmqjgWRC4JsvFptrCEgIDARpJCicAJQgCEiEDXUtqaWzBuhGXKukRcG5s9ACvZZGaqOBZELgmy8Wm2sIQ-NKS0gYaCwoJBBiQTsiRAiOCGgsKCQQYkE7IkQIjgipGMEQCIHFfIAzqltqo_cb_6eXHrBg9rKFGnWo4IMG-y3gfXsehAiA6KdbQ1Qm29wuh92fcHNpFmz-BHPdZ5DDsefnmf7ZcDw",
"spr:CiUIAhIhAzZMgD-qjJe5tlKjSoF78qo7MM4sxRSLWPmgkye9R6YsEgIDARpJCicAJQgCEiEDNkyAP6qMl7m2UqNKgXvyqjswzizFFItY-aCTJ71HpiwQ6tSS0gYaCwoJBLymyHeRAiOCGgsKCQS8psh3kQIjgipHMEUCIQCK3es3sGzNCp7BanPgNALTnEvRvQ1PteD7qU1aNlAHNwIgVRM15AsklVQaLg3_YCO-a65N2vVoC73rDf-3-XwBgy4",
"spr:CiUIAhIhAwi_g5xHmn-aLe9OVMxOaBADpkjm2uiQItF5cUbCqLQ9EgIDARpJCicAJQgCEiEDCL-DnEeaf5ot705UzE5oEAOmSOba6JAi0XlxRsKotD0QxtOS0gYaCwoJBCIq5juRAiOCGgsKCQQiKuY7kQIjgipGMEQCICQx0qtOMXMUtM1iJ93hmIjQ0vydlr_h-IBl0E0Bi0FtAiAI1GktyKB--QojDKtrnF7kNts5YyVKKgJAT4BervQ4fA",
"spr:CiUIAhIhAiwKmSwu6gxwCcUU_EeE8dPdE_GJDlw17E5qORPHvjflEgIDARpJCicAJQgCEiECLAqZLC7qDHAJxRT8R4Tx090T8YkOXDXsTmo5E8e-N-UQttWS0gYaCwoJBCI7UnORAiOCGgsKCQQiO1JzkQIjgipGMEQCIBlM-DKSHQNggApnD6OGql3Eq1BaNfPdNMR9dFQGT7MMAiAIeC70OCWGUVj6ra24hexAxlIKR5dBcnIja4MRH2se5w",
"spr:CiUIAhIhAuc7v0KnrAyWlwcAw72SvOxVDRG0yAA3ldfwAz6ArdCOEgIDARpJCicAJQgCEiEC5zu_QqesDJaXBwDDvZK87FUNEbTIADeV1_ADPoCt0I4QstKS0gYaCwoJBC_u5W-RAiOCGgsKCQQv7uVvkQIjgipGMEQCIEDEROhxRPwYJBODRpzSYDIDh1vz_w7zDSyPWXpCLJNMAiA15OElzgI0DRYDIKM1HPuJhbdUxGI-56GPbvQPJ7mLdQ",
"spr:CiUIAhIhAm-BN7CX8n1CSWBqCX76J1ppr8R8Zwd0a6SVEZeiHvvSEgIDARpJCicAJQgCEiECb4E3sJfyfUJJYGoJfvonWmmvxHxnB3RrpJURl6Ie-9IQqNSS0gYaCwoJBC9WIsqRAiOCGgsKCQQvViLKkQIjgipHMEUCIQCDlrjWw7fetq16mSztM6GQk6cVnGeRFN4pgObd77zR_QIgC0gq7wVMbMNec8uJXxxasUK28wjEr9rv7Nr6euG5zyw"
]
},
{
"name": "logos.test",
"description": "Logos testnet",
@ -23,6 +11,18 @@
"spr:CiUIAhIhAr0XuiYSeu54D9yrXkzAhdOMfB8HB7ym0kzrGxL7-8fQEgIDARpJCicAJQgCEiECvRe6JhJ67ngP3KteTMCF04x8HwcHvKbSTOsbEvv7x9AQj76T0gYaCwoJBC9MqLqRAiOCGgsKCQQvTKi6kQIjgipGMEQCICkqwI-i5V1u1N5NKL4E_nSfHCIoKKa_ymz9bahHRVfHAiBZnRhOezDQNLh_RNiD4xy9mFA3vGcjOGXx_jVePsjs5g",
"spr:CiUIAhIhAyePlG8L_W6LpMHk-0xMY0tkMEWSNT5Mhe44ppPkaG9EEgIDARpJCicAJQgCEiEDJ4-Ubwv9boukweT7TExjS2QwRZI1PkyF7jimk-Rob0QQiMCT0gYaCwoJBC9MsqSRAiOCGgsKCQQvTLKkkQIjgipGMEQCIHMHieOXzcqxmrn4503-UWDQU8JfLco0fL2DrIRQfZBPAiAdx6GS8HbgXRkSXWENW0U_TwpK8jnAaNtoE_aJf0mSbA"
]
},
{
"name": "logos.dev",
"description": "Logos devnet",
"records": [
"spr:CiUIAhIhA11LamlswboRlyrpEXBubPQAr2WRmqjgWRC4JsvFptrCEgIDARpJCicAJQgCEiEDXUtqaWzBuhGXKukRcG5s9ACvZZGaqOBZELgmy8Wm2sIQ-NKS0gYaCwoJBBiQTsiRAiOCGgsKCQQYkE7IkQIjgipGMEQCIHFfIAzqltqo_cb_6eXHrBg9rKFGnWo4IMG-y3gfXsehAiA6KdbQ1Qm29wuh92fcHNpFmz-BHPdZ5DDsefnmf7ZcDw",
"spr:CiUIAhIhAzZMgD-qjJe5tlKjSoF78qo7MM4sxRSLWPmgkye9R6YsEgIDARpJCicAJQgCEiEDNkyAP6qMl7m2UqNKgXvyqjswzizFFItY-aCTJ71HpiwQ6tSS0gYaCwoJBLymyHeRAiOCGgsKCQS8psh3kQIjgipHMEUCIQCK3es3sGzNCp7BanPgNALTnEvRvQ1PteD7qU1aNlAHNwIgVRM15AsklVQaLg3_YCO-a65N2vVoC73rDf-3-XwBgy4",
"spr:CiUIAhIhAwi_g5xHmn-aLe9OVMxOaBADpkjm2uiQItF5cUbCqLQ9EgIDARpJCicAJQgCEiEDCL-DnEeaf5ot705UzE5oEAOmSOba6JAi0XlxRsKotD0QxtOS0gYaCwoJBCIq5juRAiOCGgsKCQQiKuY7kQIjgipGMEQCICQx0qtOMXMUtM1iJ93hmIjQ0vydlr_h-IBl0E0Bi0FtAiAI1GktyKB--QojDKtrnF7kNts5YyVKKgJAT4BervQ4fA",
"spr:CiUIAhIhAiwKmSwu6gxwCcUU_EeE8dPdE_GJDlw17E5qORPHvjflEgIDARpJCicAJQgCEiECLAqZLC7qDHAJxRT8R4Tx090T8YkOXDXsTmo5E8e-N-UQttWS0gYaCwoJBCI7UnORAiOCGgsKCQQiO1JzkQIjgipGMEQCIBlM-DKSHQNggApnD6OGql3Eq1BaNfPdNMR9dFQGT7MMAiAIeC70OCWGUVj6ra24hexAxlIKR5dBcnIja4MRH2se5w",
"spr:CiUIAhIhAuc7v0KnrAyWlwcAw72SvOxVDRG0yAA3ldfwAz6ArdCOEgIDARpJCicAJQgCEiEC5zu_QqesDJaXBwDDvZK87FUNEbTIADeV1_ADPoCt0I4QstKS0gYaCwoJBC_u5W-RAiOCGgsKCQQv7uVvkQIjgipGMEQCIEDEROhxRPwYJBODRpzSYDIDh1vz_w7zDSyPWXpCLJNMAiA15OElzgI0DRYDIKM1HPuJhbdUxGI-56GPbvQPJ7mLdQ",
"spr:CiUIAhIhAm-BN7CX8n1CSWBqCX76J1ppr8R8Zwd0a6SVEZeiHvvSEgIDARpJCicAJQgCEiECb4E3sJfyfUJJYGoJfvonWmmvxHxnB3RrpJURl6Ie-9IQqNSS0gYaCwoJBC9WIsqRAiOCGgsKCQQvViLKkQIjgipHMEUCIQCDlrjWw7fetq16mSztM6GQk6cVnGeRFN4pgObd77zR_QIgC0gq7wVMbMNec8uJXxxasUK28wjEr9rv7Nr6euG5zyw"
]
}
]
}

View File

@ -8,7 +8,7 @@ echoerr() {
}
# Needs bash 4 or higher
if ((${BASH_VERSION:-0} < 4)); then
if (( BASH_VERSINFO[0] < 4 )); then
echoerr "Error: This script requires Bash 4 or higher."
exit 1
fi
@ -21,7 +21,11 @@ fi
# Valid networks
declare -A _networks
_networks=([dev]="Logos devnet" [test]="Logos testnet")
_networks=([test]="Logos testnet" [dev]="Logos devnet")
# Associative arrays are unordered, but presets must be ordered
# as the first network will be the one that the node connects by
# default.
_preset_order=("test" "dev")
check_network() {
local network=$1
@ -34,7 +38,7 @@ check_network() {
raw_data() {
local network=$1
check_network "$network"
curl -s "https://fleets.logos.co/logos-${network}/storage-network.json"
curl -fsSL "https://fleets.logos.co/logos-${network}/storage-network.json"
}
mix_pool_json() {
@ -73,35 +77,20 @@ full_config() {
"network": "logos.${network}",
"mix-enabled": true,
"dht-mix-proxy": $(mix_proxy_sprs "$network"),
"mix-pool-json": $(mix_pool_json "$network" | jq -c '. | tostring')
"mix-pool-json": $(mix_pool_json "$network" | jq -c 'tostring')
}
EOF
}
presets() {
local _keys=("${!_networks[@]}")
local _last_network="${_keys[-1]}"
echoerr "Re-generating network presets."
cat <<'EOF'
{
"presets": [
EOF
for network in "${_keys[@]}"; do
cat <<EOF
{
"name": "logos.${network}",
"description": "${_networks[$network]}",
"records": $(bootstrap_sprs "$network")
}$( [[ "$network" != "$_last_network" ]] && echo "," )
EOF
done
cat <<EOF
]
}
EOF
for network in "${_preset_order[@]}"; do
bootstrap_sprs "$network" | jq \
--arg name "logos.${network}" \
--arg description "${_networks[$network]}" \
'{name: $name, description: $description, records: .}'
done | jq -s '{presets: .}'
}
usage() {