Skip to content

Commit

Permalink
first iteration multiple network support
Browse files Browse the repository at this point in the history
  • Loading branch information
fix committed May 5, 2017
1 parent 50e64d6 commit 0e1cb15
Show file tree
Hide file tree
Showing 34 changed files with 1,443 additions and 1,728 deletions.
43 changes: 27 additions & 16 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
'use strict';

var appConfig = require('./config.json');
var networks = require('./networks.json');
var async = require('async');
var checkIpInList = require('./helpers/checkIpInList.js');
var extend = require('extend');
var fs = require('fs');
var genesisblock = require('./genesisBlock.json');
var arkjs = require('arkjs');
var https = require('https');
var Logger = require('./logger.js');
var packageJson = require('./package.json');
Expand All @@ -22,16 +24,11 @@ process.stdin.resume();

var versionBuild = fs.readFileSync(path.join(__dirname, 'build'), 'utf8');

if (typeof gc !== 'undefined') {
setInterval(function () {
gc();
}, 60000);
}

program
.version(packageJson.version)
.option('-c, --config <path>', 'config file path')
.option('-g, --genesis <path>', 'genesis block')
.option('-n, --networks <path>', 'networks definition file')
.option('-p, --port <port>', 'listening port number')
.option('-a, --address <ip>', 'listening host name or ip')
.option('-x, --peers [peers...]', 'peers list')
Expand All @@ -47,6 +44,10 @@ if (program.genesis) {
genesisblock = require(path.resolve(process.cwd(), program.genesis));
}

if (program.networks) {
networks = require(path.resolve(process.cwd(), program.networks));
}

if (program.port) {
appConfig.port = program.port;
}
Expand Down Expand Up @@ -97,6 +98,14 @@ var config = {
}
};

if(appConfig.network){
appConfig.network = networks[appConfig.network];
}

else {
appConfig.network = networks.ark;
}

if(appConfig.modules){
for(var name in appConfig.modules){
config.modules[name]=appConfig.modules[name];
Expand Down Expand Up @@ -152,7 +161,8 @@ d.run(function () {
},

schema: function (cb) {
cb(null, new z_schema());
var schema = new z_schema(appConfig.network).z_schema
cb(null, new schema());
},

network: ['config', function (scope, cb) {
Expand Down Expand Up @@ -354,11 +364,12 @@ d.run(function () {

}],

ed: function (cb) {
cb(null, require('./helpers/ed.js'));
},
crypto: ['config', function (scope, cb) {
var crypto = require('./helpers/crypto.js')
cb(null, new crypto(scope));
}],

bus: ['ed', function (scope, cb) {
bus: ['crypto', function (scope, cb) {
var changeCase = require('change-case');
var bus = function () {
this.message = function () {
Expand Down Expand Up @@ -393,8 +404,8 @@ d.run(function () {
db: function (cb) {
cb(null, scope.db);
},
ed: function (cb) {
cb(null, scope.ed);
crypto: function (cb) {
cb(null, scope.crypto);
},
logger: function (cb) {
cb(null, logger);
Expand All @@ -407,13 +418,13 @@ d.run(function () {
block: genesisblock
});
},
account: ['db', 'bus', 'ed', 'schema', 'genesisblock', function (scope, cb) {
account: ['db', 'bus', 'crypto', 'schema', 'genesisblock', function (scope, cb) {
new Account(scope, cb);
}],
transaction: ['db', 'bus', 'ed', 'schema', 'genesisblock', 'account', function (scope, cb) {
transaction: ['db', 'bus', 'crypto', 'schema', 'genesisblock', 'account', function (scope, cb) {
new Transaction(scope, cb);
}],
block: ['db', 'bus', 'ed', 'schema', 'genesisblock', 'account', 'transaction', function (scope, cb) {
block: ['db', 'bus', 'crypto', 'schema', 'genesisblock', 'account', 'transaction', function (scope, cb) {
new Block(scope, cb);
}]
}, cb);
Expand Down
1 change: 1 addition & 0 deletions config.mainnet.json
Original file line number Diff line number Diff line change
Expand Up @@ -215,5 +215,6 @@
"cert": "./ssl/ark.crt"
}
},
"network":"ark",
"nethash": "6e84d08bd299ed97c212c886c98a57e36545c8f5d645ca7eeae63a8bd62d8988"
}
79 changes: 64 additions & 15 deletions config.testnet.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"port": 4000,
"address": "0.0.0.0",
"version": "0.3.0",
"version": "1.0.0",
"fileLogLevel": "info",
"logFileName": "logs/ark.log",
"consoleLogLevel": "info",
"consoleLogLevel": "debug",
"trustProxy": false,
"db": {
"host": "localhost",
Expand All @@ -20,7 +20,7 @@
]
},
"api": {
"mount":true,
"mount": true,
"access": {
"whiteList": []
},
Expand All @@ -34,13 +34,12 @@
}
},
"peers": {
"minimumNetworkReach":20,
"minimumNetworkReach": 1,
"list": [
{"ip":"5.39.9.245", "port":4000},
{"ip":"5.39.9.246", "port":4000},
{"ip":"5.39.9.247", "port":4000},
{"ip":"5.39.9.248", "port":4000},
{"ip":"5.39.9.249", "port":4000}
{
"ip": "127.0.0.1",
"port": 4000
}
],
"blackList": [],
"options": {
Expand All @@ -57,7 +56,59 @@
"forging": {
"coldstart": 6,
"force": true,
"secret": [],
"secret": [
"height dance bottom plastic circle scrap will creek invest fever degree oven",
"runway home silent mutual blade nose spin marriage fancy main smooth champion",
"elder alter stock acoustic jazz divide toward whip decorate summer wire length",
"deputy shoe pizza eyebrow choice fury emotion morning naive that error opera",
"define end worry style typical basket fresh chapter cloud enroll kidney juice",
"gap open romance sadness north system jump vault debris correct spend exist",
"history hollow pencil marine sentence chat plastic sniff focus final impulse toilet",
"disorder exit caution joke kitchen broccoli response decorate machine outside this again",
"paddle ridge young goddess tackle struggle radio door wink engage inhale pear",
"false man grocery depth thought hammer vital jaguar seminar old tobacco field",
"nerve finger use balcony capable soul mixed shallow hurt bench video below",
"observe champion change history very soft bleak twenty cigar such penalty bunker",
"nurse island tragic margin absorb danger naive whale blouse owner rifle average",
"other nut young essay endorse talent sick flavor panel under brand cancel",
"globe shine sand lonely problem tilt laugh garbage clutch submit distance arrive",
"expose law earn crucial what bridge guard split delay average isolate home",
"shoot they acid whip vicious injury future siren chuckle twin bless wrist",
"property machine actor forest rigid dilemma such globe cross citizen across enemy",
"survey parent uphold shine metal draw normal stove potato melt huge master",
"office sting divorce fragile limit creek maple aware hour clutch code avocado",
"debris city onion achieve screen village orange labor rice item someone much",
"limit shaft canoe sorry domain exclude danger enter invite just meat price",
"lock auto ankle want whip lottery picnic wolf permit start essay wasp",
"dwarf capital weasel insane sauce cake ice toy suspect eye horn ecology",
"gossip wreck cruise fault tortoise convince sauce meat bulk two bicycle host",
"direct joke weapon other acoustic pulse blue word team flush boil supply",
"unit swap skull magic flock bread sudden problem cushion intact able olympic",
"hedgehog notable grant person riot vague recycle local naive debate rib gap",
"into sauce sleep setup super element squeeze employ try decline brass educate",
"wave drop air picnic vicious oil wheat stereo pride artefact food like",
"devote kiss protect cook where welcome unaware express climb catalog wool little",
"inner enforce have caution lawn proof because similar clarify dinner pig sadness",
"hood welcome room pencil pen find must trend cat warfare hip fine",
"deliver one turkey pelican derive sport oval minute poem myth also color",
"secret pepper antique flip airport stadium angry talent act blur bulb hammer",
"solve novel model upset demise thunder select number sun club region become",
"scrub lawsuit dynamic matrix unhappy reason first taste bind dial lonely pair",
"cousin negative reward elevator mosquito remember pizza slab park pulp pencil lock",
"bicycle dignity burger public miss target oblige dragon ready wood velvet spatial",
"fragile vicious movie field dentist sheriff soda sing gloom gold horse antenna",
"dress jeans obscure update wisdom enact person little sting make napkin rural",
"behind choose rally brand worth time coast decide used celery ribbon adapt",
"solve property flash genius subway verb access portion orphan say taste gorilla",
"sick bike dilemma ten room donkey fossil innocent limit learn inhale globe",
"shoot oppose garment dial replace smoke razor loud cube exile story envelope",
"assume harbor must knee shoulder file already apart today october target range",
"mix judge volcano hidden road stumble phrase behave car setup inhale border",
"jazz erase bargain city there thank vintage erase excuse wrong chronic lend",
"client when person chuckle pen balance rescue measure price toy around soft",
"narrow vague cannon home churn want sick rail above letter tourist switch",
"general sock juice birth express dress harbor tobacco limb drive chimney tree"
],
"access": {
"whiteList": [
"127.0.0.1"
Expand All @@ -68,9 +119,6 @@
"verifyOnLoading": false,
"loadPerIteration": 5000
},
"modules": {
"example":"./optional/example.js"
},
"ssl": {
"enabled": false,
"options": {
Expand All @@ -80,5 +128,6 @@
"cert": "./ssl/ark.crt"
}
},
"nethash": "4befbd4cd1f2f10cbe69ac0b494b5ce070595ed23ee7abd386867c4edcdaf3bd"
}
"network": "testnet",
"nethash": "d1c7fa0dcf7584add7a535acd674d3b13fa794345d83c3789cc2436d6ecd80d1"
}
6 changes: 3 additions & 3 deletions docs/accounts.html
Original file line number Diff line number Diff line change
Expand Up @@ -636,7 +636,7 @@ <h1>accounts.js</h1>
<span class="hljs-keyword">return</span> cb(err[<span class="hljs-number">0</span>].message);
}

<span class="hljs-keyword">var</span> keypair = library.ed.makeKeypair(req.body.secret);
<span class="hljs-keyword">var</span> keypair = library.crypto.makeKeypair(req.body.secret);

<span class="hljs-keyword">if</span> (req.body.publicKey) {
<span class="hljs-keyword">if</span> (keypair.publicKey.toString(<span class="hljs-string">'hex'</span>) !== req.body.publicKey) {
Expand Down Expand Up @@ -682,7 +682,7 @@ <h1>accounts.js</h1>
<span class="hljs-keyword">var</span> secondKeypair = <span class="hljs-literal">null</span>;

<span class="hljs-keyword">if</span> (requester.secondSignature) {
secondKeypair = library.ed.makeKeypair(req.body.secondSecret);
secondKeypair = library.crypto.makeKeypair(req.body.secondSecret);
}

<span class="hljs-keyword">var</span> transaction;
Expand Down Expand Up @@ -726,7 +726,7 @@ <h1>accounts.js</h1>
<span class="hljs-keyword">var</span> secondKeypair = <span class="hljs-literal">null</span>;

<span class="hljs-keyword">if</span> (account.secondSignature) {
secondKeypair = library.ed.makeKeypair(req.body.secondSecret);
secondKeypair = library.crypto.makeKeypair(req.body.secondSecret);
}

<span class="hljs-keyword">var</span> transaction;
Expand Down
2 changes: 1 addition & 1 deletion docs/app.html
Original file line number Diff line number Diff line change
Expand Up @@ -619,7 +619,7 @@ <h1>app.js</h1>
cb(<span class="hljs-literal">null</span>, scope.db);
},
<span class="hljs-attr">ed</span>: <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">cb</span>) </span>{
cb(<span class="hljs-literal">null</span>, scope.ed);
cb(<span class="hljs-literal">null</span>, scope.crypto);
},
<span class="hljs-attr">logger</span>: <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">cb</span>) </span>{
cb(<span class="hljs-literal">null</span>, logger);
Expand Down
12 changes: 6 additions & 6 deletions docs/delegates.html
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ <h1>delegates.js</h1>
<span class="hljs-keyword">return</span> res.json({<span class="hljs-attr">success</span>: <span class="hljs-literal">false</span>, <span class="hljs-attr">error</span>: <span class="hljs-string">'Access denied'</span>});
}

<span class="hljs-keyword">var</span> keypair = library.ed.makeKeypair(crypto.createHash(<span class="hljs-string">'sha256'</span>).update(req.body.secret, <span class="hljs-string">'utf8'</span>).digest());
<span class="hljs-keyword">var</span> keypair = library.crypto.makeKeypair(crypto.createHash(<span class="hljs-string">'sha256'</span>).update(req.body.secret, <span class="hljs-string">'utf8'</span>).digest());

<span class="hljs-keyword">if</span> (req.body.publicKey) {
<span class="hljs-keyword">if</span> (keypair.publicKey.toString(<span class="hljs-string">'hex'</span>) !== req.body.publicKey) {
Expand Down Expand Up @@ -385,7 +385,7 @@ <h1>delegates.js</h1>
<span class="hljs-keyword">return</span> res.json({<span class="hljs-attr">success</span>: <span class="hljs-literal">false</span>, <span class="hljs-attr">error</span>: <span class="hljs-string">'Access denied'</span>});
}

<span class="hljs-keyword">var</span> keypair = library.ed.makeKeypair(crypto.createHash(<span class="hljs-string">'sha256'</span>).update(req.body.secret, <span class="hljs-string">'utf8'</span>).digest());
<span class="hljs-keyword">var</span> keypair = library.crypto.makeKeypair(crypto.createHash(<span class="hljs-string">'sha256'</span>).update(req.body.secret, <span class="hljs-string">'utf8'</span>).digest());

<span class="hljs-keyword">if</span> (req.body.publicKey) {
<span class="hljs-keyword">if</span> (keypair.publicKey.toString(<span class="hljs-string">'hex'</span>) !== req.body.publicKey) {
Expand Down Expand Up @@ -875,7 +875,7 @@ <h1 id="if-blockslot-my-slot">if blockslot &gt; my slot</h1>
}

<span class="hljs-keyword">async</span>.eachSeries(secrets, <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">secret, seriesCb</span>) </span>{
<span class="hljs-keyword">var</span> keypair = library.ed.makeKeypair(secret);</pre></div></div>
<span class="hljs-keyword">var</span> keypair = library.crypto.makeKeypair(secret);</pre></div></div>

</li>

Expand Down Expand Up @@ -1869,7 +1869,7 @@ <h1 id="if-blockslot-my-slot">if blockslot &gt; my slot</h1>
<span class="hljs-keyword">return</span> cb(err[<span class="hljs-number">0</span>].message);
}

<span class="hljs-keyword">var</span> keypair = library.ed.makeKeypair(req.body.secret);
<span class="hljs-keyword">var</span> keypair = library.crypto.makeKeypair(req.body.secret);

<span class="hljs-keyword">if</span> (req.body.publicKey) {
<span class="hljs-keyword">if</span> (keypair.publicKey.toString(<span class="hljs-string">'hex'</span>) !== req.body.publicKey) {
Expand Down Expand Up @@ -1916,7 +1916,7 @@ <h1 id="if-blockslot-my-slot">if blockslot &gt; my slot</h1>
<span class="hljs-keyword">var</span> secondKeypair = <span class="hljs-literal">null</span>;

<span class="hljs-keyword">if</span> (requester.secondSignature) {
secondKeypair = library.ed.makeKeypair(req.body.secondSecret);
secondKeypair = library.crypto.makeKeypair(req.body.secondSecret);
}

<span class="hljs-keyword">var</span> transaction;
Expand Down Expand Up @@ -1954,7 +1954,7 @@ <h1 id="if-blockslot-my-slot">if blockslot &gt; my slot</h1>
<span class="hljs-keyword">var</span> secondKeypair = <span class="hljs-literal">null</span>;

<span class="hljs-keyword">if</span> (account.secondSignature) {
secondKeypair = library.ed.makeKeypair(req.body.secondSecret);
secondKeypair = library.crypto.makeKeypair(req.body.secondSecret);
}

<span class="hljs-keyword">var</span> transaction;
Expand Down
6 changes: 3 additions & 3 deletions docs/multisignatures.html
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@ <h1>multisignatures.js</h1>
<span class="hljs-keyword">return</span> seriesCb(<span class="hljs-string">'Transaction not found'</span>);
}

scope.keypair = library.ed.makeKeypair(req.body.secret);
scope.keypair = library.crypto.makeKeypair(req.body.secret);

<span class="hljs-keyword">if</span> (req.body.publicKey) {
<span class="hljs-keyword">if</span> (scope.keypair.publicKey.toString(<span class="hljs-string">'hex'</span>) !== req.body.publicKey) {
Expand Down Expand Up @@ -725,7 +725,7 @@ <h1>multisignatures.js</h1>
<span class="hljs-keyword">return</span> cb(err[<span class="hljs-number">0</span>].message);
}

<span class="hljs-keyword">var</span> keypair = library.ed.makeKeypair(req.body.secret);
<span class="hljs-keyword">var</span> keypair = library.crypto.makeKeypair(req.body.secret);

<span class="hljs-keyword">if</span> (req.body.publicKey) {
<span class="hljs-keyword">if</span> (keypair.publicKey.toString(<span class="hljs-string">'hex'</span>) !== req.body.publicKey) {
Expand All @@ -749,7 +749,7 @@ <h1>multisignatures.js</h1>
<span class="hljs-keyword">var</span> secondKeypair = <span class="hljs-literal">null</span>;

<span class="hljs-keyword">if</span> (account.secondSignature) {
secondKeypair = library.ed.makeKeypair(req.body.secondSecret);
secondKeypair = library.crypto.makeKeypair(req.body.secondSecret);
}

<span class="hljs-keyword">var</span> transaction;
Expand Down
6 changes: 3 additions & 3 deletions docs/signatures.html
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ <h1>signatures.js</h1>
<span class="hljs-keyword">return</span> cb(err[<span class="hljs-number">0</span>].message);
}

<span class="hljs-keyword">var</span> keypair = library.ed.makeKeypair(req.body.secret);
<span class="hljs-keyword">var</span> keypair = library.crypto.makeKeypair(req.body.secret);

<span class="hljs-keyword">if</span> (req.body.publicKey) {
<span class="hljs-keyword">if</span> (keypair.publicKey.toString(<span class="hljs-string">'hex'</span>) !== req.body.publicKey) {
Expand Down Expand Up @@ -385,7 +385,7 @@ <h1>signatures.js</h1>
<span class="hljs-keyword">return</span> cb(<span class="hljs-string">'Invalid requester public key'</span>);
}

<span class="hljs-keyword">var</span> secondKeypair = library.ed.makeKeypair(req.body.secondSecret);
<span class="hljs-keyword">var</span> secondKeypair = library.crypto.makeKeypair(req.body.secondSecret);
<span class="hljs-keyword">var</span> transaction;

<span class="hljs-keyword">try</span> {
Expand Down Expand Up @@ -418,7 +418,7 @@ <h1>signatures.js</h1>
<span class="hljs-keyword">return</span> cb(<span class="hljs-string">'Account already has a second passphrase'</span>);
}

<span class="hljs-keyword">var</span> secondKeypair = library.ed.makeKeypair(req.body.secondSecret);
<span class="hljs-keyword">var</span> secondKeypair = library.crypto.makeKeypair(req.body.secondSecret);
<span class="hljs-keyword">var</span> transaction;

<span class="hljs-keyword">try</span> {
Expand Down
Loading

0 comments on commit 0e1cb15

Please sign in to comment.