@kba-tools/genesis-tool
Version:
A forked repo from ConsenSys which helps to generate genesis block for Besu Network with xemptyBlockPeriod field.
94 lines • 9.51 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTimestamp = createTimestamp;
exports.setupOutputFolder = setupOutputFolder;
exports.writeNodeKeys = writeNodeKeys;
exports.createStaticNodes = createStaticNodes;
exports.createGoQuorumPermissionsFile = createGoQuorumPermissionsFile;
exports.createBesuPermissionsFile = createBesuPermissionsFile;
const njks = __importStar(require("nunjucks"));
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const GOQ_SUB = "/goQuorum";
const BESU_SUB = "/besu";
njks.configure({ autoescape: false });
function createTimestamp() {
return new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60 * 1000).toISOString()
.substr(0, 19)
.replace('T', '-').replace(/:/g, '-');
}
function setupOutputFolder(fpath, quorumConfig) {
// create the base path if it doesnt exist
if (!fs_1.default.existsSync(fpath))
fs_1.default.mkdirSync(fpath, { recursive: true });
// template for the README.md
const templateSrc = fs_1.default.readFileSync(path_1.default.resolve(__dirname, '../templates/README.md'), "utf-8");
const result = njks.renderString(templateSrc, quorumConfig);
fs_1.default.writeFileSync(fpath + '/README.md', result);
// save the values from the user to file
fs_1.default.writeFileSync(fpath + "/userData.json", JSON.stringify(quorumConfig, null, 2));
[GOQ_SUB, BESU_SUB].forEach((client) => {
fs_1.default.mkdirSync(fpath + client, { recursive: true });
});
return fpath;
}
function writeNodeKeys(path, nodekeys) {
if (!fs_1.default.existsSync(path))
fs_1.default.mkdirSync(path, { recursive: true });
// nodekeys
fs_1.default.writeFileSync(path + "/nodekey", nodekeys.privateKey.toString('hex'));
fs_1.default.writeFileSync(path + "/nodekey.pub", nodekeys.publicKey.toString('hex'));
fs_1.default.writeFileSync(path + "/address", nodekeys.address.toString('hex'));
// account keys
fs_1.default.writeFileSync(path + "/accountKeystore", nodekeys.ethAccount.keystore);
fs_1.default.writeFileSync(path + "/accountPassword", nodekeys.ethAccount.password);
fs_1.default.writeFileSync(path + "/accountPrivateKey", nodekeys.ethAccount.privateKey);
fs_1.default.writeFileSync(path + "/accountAddress", nodekeys.ethAccount.address);
}
function createStaticNodes(path, nodes, besu, goq) {
const staticNodes = nodes.map(_ => "enode://" + _ + "@<HOST>:30303");
const staticNodesGoQ = nodes.map(_ => "enode://" + _ + "@<HOST>:30303?discport=0&raftport=53000");
if (besu === true) {
fs_1.default.writeFileSync(path + BESU_SUB + "/static-nodes.json", JSON.stringify(staticNodes, null, 2));
}
if (goq === true) {
fs_1.default.writeFileSync(path + GOQ_SUB + "/static-nodes.json", JSON.stringify(staticNodesGoQ, null, 2));
}
}
function createGoQuorumPermissionsFile(path, nodes) {
const staticNodes = nodes.map(_ => "enode://" + _ + "@<HOST>:30303?discport=0&raftport=53000");
fs_1.default.writeFileSync(path + GOQ_SUB + "/permissioned-nodes.json", JSON.stringify(staticNodes, null, 2));
fs_1.default.writeFileSync(path + GOQ_SUB + "/disallowed-nodes.json", JSON.stringify([], null, 2));
}
function createBesuPermissionsFile(path, nodes) {
const staticNodes = nodes.map(_ => "enode://" + _ + "@<HOST>:30303");
fs_1.default.writeFileSync(path + BESU_SUB + "/permissioned-nodes.toml", "nodes-allowlist=");
fs_1.default.appendFileSync(path + BESU_SUB + "/permissioned-nodes.toml", JSON.stringify(staticNodes, null, 2));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2ZpbGVIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSwwQ0FJQztBQUVELDhDQWVDO0FBRUQsc0NBV0M7QUFFRCw4Q0FTQztBQUVELHNFQUlDO0FBRUQsOERBSUM7QUFuRUQsK0NBQWlDO0FBR2pDLDRDQUFvQjtBQUNwQixnREFBd0I7QUFFeEIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDO0FBQzVCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQztBQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFFdEMsU0FBZ0IsZUFBZTtJQUM3QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUU7U0FDN0YsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDYixPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxZQUEwQjtJQUN6RSwwQ0FBMEM7SUFDMUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQUUsWUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVwRSw2QkFBNkI7SUFDN0IsTUFBTSxXQUFXLEdBQUcsWUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSx3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