mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-07-05 16:59:57 +00:00
fix: add explicit ordering to config script so presets are deterministic (#1483)
This commit is contained in:
parent
0623c29de7
commit
d94417a221
@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -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() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user