class SystemProperties {

    public String privateKey() {
        if (config.hasPath("peer.privateKey")) {
            String key = config.getString("peer.privateKey");
            if (key.length() != 64 || !Utils.isHexEncoded(key)) {
                throw new RuntimeException("The peer.privateKey needs to be Hex encoded and 32 byte length");
            }
            return key;
        } else {
            return getGeneratedNodePrivateKey();
        }
    }

    public  SystemProperties();
    public  SystemProperties(File configFile);
    public  SystemProperties(String configResource);
    public  SystemProperties(Config apiConfig);
    public  SystemProperties(Config apiConfig, ClassLoader classLoader);

}