You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.0 KiB
79 lines
2.0 KiB
pkgs: with pkgs; with lib; with topology-lib; |
|
let |
|
|
|
regions = { |
|
a = { name = "eu-central-1"; /* Europe (Frankfurt) */ }; |
|
b = { name = "us-east-2"; /* US East (Ohio) */ }; |
|
c = { name = "ap-southeast-1"; /* Asia Pacific (Singapore) */ }; |
|
d = { name = "eu-west-2"; /* Europe (London) */ }; |
|
}; |
|
|
|
bftCoreNodes = let |
|
mkBftCoreNode = mkBftCoreNodeForRegions regions; |
|
in regionalConnectGroupWith (reverseList stakingPoolNodes) |
|
(fullyConnectNodes [ |
|
# OBFT centralized nodes recovery nodes |
|
(mkBftCoreNode "a" 1 { |
|
org = "IOHK"; |
|
nodeId = 1; |
|
}) |
|
(mkBftCoreNode "b" 1 { |
|
org = "IOHK"; |
|
nodeId = 2; |
|
}) |
|
(mkBftCoreNode "c" 1 { |
|
org = "IOHK"; |
|
nodeId = 3; |
|
}) |
|
]); |
|
|
|
stakingPoolNodes = let |
|
mkStakingPool = mkStakingPoolForRegions regions; |
|
in regionalConnectGroupWith bftCoreNodes |
|
(fullyConnectNodes [ |
|
(mkStakingPool "a" 1 "IOHK1" { nodeId = 4; }) |
|
(mkStakingPool "b" 1 "IOHK2" { nodeId = 5; }) |
|
(mkStakingPool "c" 1 "IOHK3" { nodeId = 6; }) |
|
]); |
|
|
|
coreNodes = bftCoreNodes ++ stakingPoolNodes; |
|
|
|
relayNodes = map (withAutoRestartEvery 6) (mkRelayTopology { |
|
inherit regions coreNodes; |
|
autoscaling = false; |
|
maxProducersPerNode = 20; |
|
maxInRegionPeers = 5; |
|
}); |
|
|
|
in { |
|
|
|
inherit coreNodes relayNodes; |
|
|
|
monitoring = { |
|
services.monitoring-services.publicGrafana = false; |
|
}; |
|
|
|
|
|
"${globals.faucetHostname}" = { |
|
services.cardano-faucet = { |
|
anonymousAccess = false; |
|
faucetLogLevel = "DEBUG"; |
|
secondsBetweenRequestsAnonymous = 86400; |
|
secondsBetweenRequestsApiKeyAuth = 86400; |
|
lovelacesToGiveAnonymous = 1000000000; |
|
lovelacesToGiveApiKeyAuth = 10000000000; |
|
useByronWallet = false; |
|
}; |
|
}; |
|
|
|
|
|
explorer = { |
|
services.nginx.virtualHosts.${globals.explorerHostName}.locations."/p" = lib.mkIf (__pathExists ../static/pool-metadata) { |
|
root = ../static/pool-metadata; |
|
}; |
|
services.cardano-graphql = { |
|
allowListPath = mkForce null; |
|
allowIntrospection = true; |
|
}; |
|
}; |
|
}
|
|
|