UNPKG

@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
"use strict"; 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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