Skip to content
This repository was archived by the owner on Dec 14, 2018. It is now read-only.

Commit e98e891

Browse files
author
Kristjan Kosic
authored
Merge pull request #112 from n4ru/mainnet
1.2.0 Soft Fork
2 parents 1430923 + 7fbfade commit e98e891

3 files changed

Lines changed: 27 additions & 8 deletions

File tree

config.mainnet.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"logFileName": "logs/ark.log",
77
"consoleLogLevel": "info",
88
"trustProxy": false,
9+
"minimumVersion": "1.2.0",
910
"db": {
1011
"host": "localhost",
1112
"port": 5432,

modules/peers.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ function Peers (cb, scope) {
4242

4343
// Return a Peer object, trying to sort out with lite clients
4444
// By default one Peer by IP is accepted.
45-
Peers.prototype.accept = function(peer){
45+
Peers.prototype.accept = function(peer, noAccept){
46+
if (noAccept)
47+
return new Peer(peer.ip, peer.port, peer.version, peer.os);
4648
var candidate;
4749
if(__private.peers[peer.ip]){
4850
candidate = __private.peers[peer.ip];
@@ -128,8 +130,12 @@ __private.updatePeersList = function (cb) {
128130
method: 'GET'
129131
}, function (err, res) {
130132
if (res.body && res.body.height) {
131-
library.logger.debug("Adding peer", peer.ip);
132-
self.accept(peer);
133+
if(peer.version >= library.config.minimumVersion) {
134+
library.logger.debug("Adding peer", peer.ip);
135+
self.accept(peer);
136+
} else {
137+
library.logger.error("Peer version below minimum - " + peer.ip + ": " + peer.version);
138+
}
133139
return eachCb();
134140
} else {
135141
library.logger.error(['Rejecting invalid peer:', peer.ip, e.path, e.message].join(' '));

modules/transport.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,12 @@ __private.attachApi = function () {
7979

8080
req.peer.os = headers.os;
8181
req.peer.version = headers.version;
82-
83-
modules.peers.accept(req.peer);
82+
83+
if (req.peer.version >= library.config.minimumVersion) {
84+
modules.peers.accept(req.peer);
85+
} else {
86+
library.logger.error("Peer version below minimum - " + req.peer.ip + ": " + req.peer.version);
87+
}
8488

8589
return next();
8690
});
@@ -195,8 +199,12 @@ __private.attachApi = function () {
195199

196200
return res.status(200).json({success: false, error: e.toString()});
197201
}
198-
199-
modules.peers.accept(req.peer);
202+
203+
if (req.peer.version >= library.config.minimumVersion) {
204+
modules.peers.accept(req.peer);
205+
} else {
206+
library.logger.error("Peer version below minimum - " + req.peer.ip + ": " + req.peer.version);
207+
}
200208

201209

202210
library.bus.message('blockReceived', block, req.peer, function(error, data){
@@ -441,7 +449,11 @@ Transport.prototype.requestFromRandomPeer = function (config, options, cb) {
441449
//
442450
Transport.prototype.requestFromPeer = function (peer, options, cb) {
443451
var url;
444-
peer = modules.peers.accept(peer);
452+
if (peer.version >= library.config.minimumVersion) {
453+
peer = modules.peers.accept(peer);
454+
} else {
455+
peer = modules.peers.accept(peer, true);
456+
}
445457
library.logger.trace("requestFromPeer", peer.toObject());
446458

447459
if (options.api) {

0 commit comments

Comments
 (0)