From 6cbb12aa3aa0d339605dc264014261fddc766663 Mon Sep 17 00:00:00 2001 From: jash Date: Sat, 3 Nov 2018 19:09:29 +0100 Subject: [PATCH] added proper pruning --- .../generators/app/index.js | 1 + .../generators/app/prompters/100_bitcoin.js | 20 +++++++++++++++++++ .../app/templates/bitcoin/bitcoin.conf | 5 +++++ 3 files changed, 26 insertions(+) diff --git a/install/generator-cyphernode/generators/app/index.js b/install/generator-cyphernode/generators/app/index.js index 54fb28f..c7c1472 100644 --- a/install/generator-cyphernode/generators/app/index.js +++ b/install/generator-cyphernode/generators/app/index.js @@ -333,6 +333,7 @@ module.exports = class extends Generator { bitcoin_rpcpassword: 'CHANGEME', bitcoin_uacomment: '', bitcoin_prune: false, + bitcoin_prune_size: 550, bitcoin_datapath: '', bitcoin_node_ip: '', bitcoin_mode: 'internal', diff --git a/install/generator-cyphernode/generators/app/prompters/100_bitcoin.js b/install/generator-cyphernode/generators/app/prompters/100_bitcoin.js index 0f1d1d5..62d7862 100644 --- a/install/generator-cyphernode/generators/app/prompters/100_bitcoin.js +++ b/install/generator-cyphernode/generators/app/prompters/100_bitcoin.js @@ -18,6 +18,10 @@ const bitcoinInternal = function(props) { return props.bitcoin_mode === 'internal' }; +const bitcoinInternalAndPrune = function(props) { + return bitcoinInternal(props) && props.bitcoin_prune; +}; + module.exports = { name: function() { return name; @@ -69,6 +73,22 @@ module.exports = { name: 'bitcoin_prune', default: utils._getDefault( 'bitcoin_prune' ), message: prefix()+'Run bitcoin node in prune mode?'+utils._getHelp('bitcoin_prune'), + }, + { + when: bitcoinInternalAndPrune, + type: 'input', + name: 'bitcoin_prune_size', + default: utils._getDefault( 'bitcoin_prune_size' ), + message: prefix()+'What is the maximum size of your blockchain data in megabytes?'+utils._getHelp('bitcoin_prune_size'), + validate: function( input ) { + if( ! /^\d+$/.test(input) ) { + throw new Error( "Not a number"); + } + if( input < 550 ) { + throw new Error( "At least 550 is required"); + } + return true; + } }, // TODO: ask for size of prune { when: bitcoinInternal, diff --git a/install/generator-cyphernode/generators/app/templates/bitcoin/bitcoin.conf b/install/generator-cyphernode/generators/app/templates/bitcoin/bitcoin.conf index 2b670ae..7fc7651 100644 --- a/install/generator-cyphernode/generators/app/templates/bitcoin/bitcoin.conf +++ b/install/generator-cyphernode/generators/app/templates/bitcoin/bitcoin.conf @@ -3,7 +3,12 @@ testnet=1 <% } %> +<% if (bitcoin_prune) { %> +prune=<%= bitcoin_prune_size || 550 %> +<% } else { %> txindex=1 +<% } %> + zmqpubrawblock=tcp://0.0.0.0:18501 zmqpubrawtx=tcp://0.0.0.0:18502