private void loadNodeConfig() throws IOException, SQLException {
Yaml yaml = new Yaml();
configRoot = (String) options.valueOf("config");
nodeKey = null;
Binder settings = Binder.of(yaml.load(new FileInputStream(configRoot + "/config/config.yaml")));
log("node settings: " + settings);
String nodeKeyFileName = configRoot + "/tmp/" + settings.getStringOrThrow("node_name") + ".private.unikey";
log(nodeKeyFileName);
nodeKey = new PrivateKey(Do.read(nodeKeyFileName));
myInfo = new NodeInfo(nodeKey.getPublicKey(),
settings.getIntOrThrow("node_number"),
settings.getStringOrThrow("node_name"),
(String) settings.getListOrThrow("ip").get(0),
settings.getStringOrThrow("public_host"),
settings.getIntOrThrow("udp_server_port"),
settings.getIntOrThrow("http_client_port"),
settings.getIntOrThrow("http_server_port")
);
config.setIsFreeRegistrationsAllowedFromYaml(settings.getBoolean("allow_free_registrations", false));
config.setPermanetMode(settings.getBoolean("permanet_mode", false));
ledger = new PostgresLedger(settings.getStringOrThrow("database"));
log("ledger constructed");
log("key loaded: " + nodeKey.info());
log("node local URL: " + myInfo.publicUrlString());
log("node info: " + myInfo.toBinder());
}