Skip to content

Commit 0322ac1

Browse files
committed
Merge branch 'release/0.2.4'
2 parents 1af8736 + 0f12501 commit 0322ac1

14 files changed

+51
-106
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
66

77
## [Unreleased]
88

9+
## [0.2.3] - 2018-05-08
10+
11+
### Changes
12+
- Fixes update interval and adds sync velocity stats
13+
914
## [0.2.3] - 2018-04-12
1015

1116
### Changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ Please, for now, refrain to small PRs, thank you!
103103
**Donations always welcome**:
104104

105105
```
106-
YHZIJOENEFSDMZGZA9WOGFTRXOFPVFFCDEYEFHPUGKEUAOTTMVLPSSNZNHRJD99WAVESLFPSGLMTUEIBDZRKBKXWZD
106+
VUXMTCZFZWEHPRGKPMPVKP9LNSXOEBSPDOIZDMRAZCZH9SCJJDQYKNPTQJXDEUYYYUJIXFRHOGIUBVQCDGJBXBFGQW
107107
```
108108

109109
### What's Next

build/asset-manifest.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"main.css": "static/css/main.ef153f8d.css",
33
"main.css.map": "static/css/main.ef153f8d.css.map",
4-
"main.js": "static/js/main.94d568ad.js",
5-
"main.js.map": "static/js/main.94d568ad.js.map"
4+
"main.js": "static/js/main.0aa9cece.js",
5+
"main.js.map": "static/js/main.0aa9cece.js.map"
66
}

build/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"><title>Nelson Monitor</title><link href="/static/css/main.ef153f8d.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script type="text/javascript" src="/static/js/main.94d568ad.js"></script></body></html>
1+
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"><title>Nelson Monitor</title><link href="/static/css/main.ef153f8d.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script type="text/javascript" src="/static/js/main.0aa9cece.js"></script></body></html>

build/nelson.gui.js

-92
This file was deleted.

build/service-worker.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/static/js/main.0aa9cece.js

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/static/js/main.0aa9cece.js.map

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/static/js/main.94d568ad.js

-2
This file was deleted.

build/static/js/main.94d568ad.js.map

-1
This file was deleted.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nelson.gui",
3-
"version": "0.2.3",
3+
"version": "0.2.4",
44
"repository": {
55
"type": "git",
66
"url": "https://github.com/SemkoDev/nelson.gui.git"

src/App.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
} from './selectors/nelson-api-selectors';
1313
import './style/App.css';
1414

15-
const DONATE_ADDR = 'YHZIJOENEFSDMZGZA9WOGFTRXOFPVFFCDEYEFHPUGKEUAOTTMVLPSSNZNHRJD99WAVESLFPSGLMTUEIBDZRKBKXWZD';
15+
const DONATE_ADDR = 'VUXMTCZFZWEHPRGKPMPVKP9LNSXOEBSPDOIZDMRAZCZH9SCJJDQYKNPTQJXDEUYYYUJIXFRHOGIUBVQCDGJBXBFGQW';
1616

1717
const propTypes = {
1818
getNelsonData: PropTypes.func.isRequired,
@@ -42,10 +42,11 @@ class App extends Component {
4242
componentDidMount () {
4343
if (this.props.match.params.auth) {
4444
this.props.changeConnection(this.props.match.params);
45-
this.restartPoll(100);
45+
this.startPoll(100);
4646
} else {
47-
this.startPoll(1)
47+
this.startPoll(1);
4848
}
49+
setTimeout(() => { this.getAllNelsonData() }, 120);
4950
}
5051

5152
componentWillUnmount() {

src/components/nelson-status/NelsonStatusData.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React from 'react';
22
import moment from '../../tools/moment';
3+
import syncVelocity from '../../model/sync-velocity';
34
import StatusListItem from './StatusListItem';
45
import { List, Divider, CircularProgress } from 'material-ui';
56
import './style/NelsonStatusData.css';
@@ -11,8 +12,8 @@ export default function NelsonStatusData ({ nelsonData }) {
1112
moment().local().diff(nelsonData.heart.startDate)
1213
).format('d [days] h [hours] m [minutes] s [seconds]');
1314

14-
const epochLabel = `Epoch (${nelsonData.config.epochInterval} s)`
15-
const cycleLabel = `Cycle (${nelsonData.config.cycleInterval} s)`
15+
const epochLabel = `Epoch (${nelsonData.config.epochInterval} s)`;
16+
const cycleLabel = `Cycle (${nelsonData.config.cycleInterval} s)`;
1617
const epochValue = (
1718
<ProgressValue
1819
currentNumber={nelsonData.heart.currentEpoch}
@@ -32,6 +33,11 @@ export default function NelsonStatusData ({ nelsonData }) {
3233
const synchronized = nelsonData.isIRIHealthy &&
3334
stats && stats.latestSolidSubtangleMilestoneIndex === stats.latestMilestoneIndex;
3435
const milestones = `( ${stats.latestSolidSubtangleMilestoneIndex} / ${stats.latestMilestoneIndex} )`;
36+
const syncVelocityData = syncVelocity(stats.latestMilestoneIndex, stats.latestSolidSubtangleMilestoneIndex);
37+
const velocity = `${syncVelocityData.velocity.toFixed(2)} indexes/minute`;
38+
const syncEstimation = syncVelocityData.minutesLeft === Infinity
39+
? (stats.latestSolidSubtangleMilestoneIndex === stats.latestMilestoneIndex ? 'Done' : 'Never')
40+
: moment.duration(syncVelocityData.minutesLeft, 'minutes').format('d [days] h [hours] m [minutes] s [seconds]');
3541
const yesno = (value) => value ? 'yes' : 'no';
3642
const memoryPercent = (stats.jreFreeMemory/stats.jreMaxMemory*100).toFixed(2);
3743
const memoryProgress = (
@@ -60,6 +66,8 @@ export default function NelsonStatusData ({ nelsonData }) {
6066
<StatusListItem label='IRI Version' value={stats.appVersion} icon='info'/>
6167
<StatusListItem label='Is IRI Healthy' value={yesno(nelsonData.isIRIHealthy)} icon='heartbeat'/>
6268
<StatusListItem label='Synchronized?' value={`${yesno(synchronized)} ${milestones}`} icon='wifi'/>
69+
<StatusListItem label='Sync speed' value={velocity} icon='download'/>
70+
<StatusListItem label='Will sync in' value={syncEstimation} icon='calendar-check-o'/>
6371
<StatusListItem label='Tips' value={stats.tips || 0} icon='podcast'/>
6472
<StatusListItem label='Transactions to request'
6573
value={stats.transactionsToRequest || 0}

src/model/sync-velocity.js

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import moment from '../tools/moment';
2+
3+
let initialMilestone, initialSubtangleMilestone, timestamp;
4+
5+
export default function syncVelocity(milestone, subtangleMilestone) {
6+
if (!initialMilestone || !initialSubtangleMilestone) {
7+
initialMilestone = milestone;
8+
initialSubtangleMilestone = subtangleMilestone;
9+
timestamp = moment();
10+
return { velocity: 0, minutesLeft: Infinity };
11+
}
12+
const diffMilestones = milestone - initialMilestone;
13+
const diffSubtangleMilestones = subtangleMilestone - initialSubtangleMilestone;
14+
let diffTime = moment().diff(timestamp);
15+
if(diffTime === 0) {
16+
return { velocity: 0, minutesLeft: Infinity };
17+
}
18+
const mVelocity = diffMilestones / diffTime * 1000 * 60; // minutes
19+
const msVelocity = diffSubtangleMilestones / diffTime * 1000 * 60; // minutes
20+
const velocity = msVelocity - mVelocity;
21+
const minutesLeft = velocity <= 0 ? Infinity : (milestone - subtangleMilestone) / velocity;
22+
return { velocity, minutesLeft };
23+
}

0 commit comments

Comments
 (0)