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

Commit

Permalink
Merge pull request #112 from n4ru/mainnet
Browse files Browse the repository at this point in the history
1.2.0 Soft Fork
  • Loading branch information
Kristjan Kosic authored Oct 9, 2018
2 parents 1430923 + 7fbfade commit e98e891
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 8 deletions.
1 change: 1 addition & 0 deletions config.mainnet.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"logFileName": "logs/ark.log",
"consoleLogLevel": "info",
"trustProxy": false,
"minimumVersion": "1.2.0",
"db": {
"host": "localhost",
"port": 5432,
Expand Down
12 changes: 9 additions & 3 deletions modules/peers.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ function Peers (cb, scope) {

// Return a Peer object, trying to sort out with lite clients
// By default one Peer by IP is accepted.
Peers.prototype.accept = function(peer){
Peers.prototype.accept = function(peer, noAccept){
if (noAccept)
return new Peer(peer.ip, peer.port, peer.version, peer.os);
var candidate;
if(__private.peers[peer.ip]){
candidate = __private.peers[peer.ip];
Expand Down Expand Up @@ -128,8 +130,12 @@ __private.updatePeersList = function (cb) {
method: 'GET'
}, function (err, res) {
if (res.body && res.body.height) {
library.logger.debug("Adding peer", peer.ip);
self.accept(peer);
if(peer.version >= library.config.minimumVersion) {
library.logger.debug("Adding peer", peer.ip);
self.accept(peer);
} else {
library.logger.error("Peer version below minimum - " + peer.ip + ": " + peer.version);
}
return eachCb();
} else {
library.logger.error(['Rejecting invalid peer:', peer.ip, e.path, e.message].join(' '));
Expand Down
22 changes: 17 additions & 5 deletions modules/transport.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,12 @@ __private.attachApi = function () {

req.peer.os = headers.os;
req.peer.version = headers.version;

modules.peers.accept(req.peer);

if (req.peer.version >= library.config.minimumVersion) {
modules.peers.accept(req.peer);
} else {
library.logger.error("Peer version below minimum - " + req.peer.ip + ": " + req.peer.version);
}

return next();
});
Expand Down Expand Up @@ -195,8 +199,12 @@ __private.attachApi = function () {

return res.status(200).json({success: false, error: e.toString()});
}

modules.peers.accept(req.peer);

if (req.peer.version >= library.config.minimumVersion) {
modules.peers.accept(req.peer);
} else {
library.logger.error("Peer version below minimum - " + req.peer.ip + ": " + req.peer.version);
}


library.bus.message('blockReceived', block, req.peer, function(error, data){
Expand Down Expand Up @@ -441,7 +449,11 @@ Transport.prototype.requestFromRandomPeer = function (config, options, cb) {
//
Transport.prototype.requestFromPeer = function (peer, options, cb) {
var url;
peer = modules.peers.accept(peer);
if (peer.version >= library.config.minimumVersion) {
peer = modules.peers.accept(peer);
} else {
peer = modules.peers.accept(peer, true);
}
library.logger.trace("requestFromPeer", peer.toObject());

if (options.api) {
Expand Down

0 comments on commit e98e891

Please sign in to comment.