Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
duniter
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Monitor
Service Desk
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
nodes
typescript
duniter
Commits
e324c04b
Commit
e324c04b
authored
6 years ago
by
Cédric Moreau
Browse files
Options
Downloads
Patches
Plain Diff
[enh] sync: add peers watching
parent
4bccd7d6
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
app/modules/crawler/lib/sync.ts
+5
-1
5 additions, 1 deletion
app/modules/crawler/lib/sync.ts
app/modules/crawler/lib/sync/Watcher.ts
+26
-1
26 additions, 1 deletion
app/modules/crawler/lib/sync/Watcher.ts
with
31 additions
and
2 deletions
app/modules/crawler/lib/sync.ts
+
5
−
1
View file @
e324c04b
...
...
@@ -60,6 +60,7 @@ export class Synchroniser extends stream.Duplex {
this
.
watcher
.
onEvent
(
'
storageChange
'
,
(
pct
:
number
)
=>
this
.
push
({
saved
:
pct
}))
this
.
watcher
.
onEvent
(
'
appliedChange
'
,
(
pct
:
number
)
=>
this
.
push
({
applied
:
pct
}))
this
.
watcher
.
onEvent
(
'
sbxChange
'
,
(
pct
:
number
)
=>
this
.
push
({
sandbox
:
pct
}))
this
.
watcher
.
onEvent
(
'
peersChange
'
,
(
pct
:
number
)
=>
this
.
push
({
peersSync
:
pct
}))
if
(
interactive
)
{
this
.
logger
.
mute
();
...
...
@@ -366,8 +367,9 @@ export class Synchroniser extends stream.Duplex {
leavesToAdd
.
push
(
leaf
);
}
});
for
(
const
leaf
of
leavesToAdd
)
{
for
(
let
i
=
0
;
i
<
leavesToAdd
.
length
;
i
++
)
{
try
{
const
leaf
=
leavesToAdd
[
i
]
const
json3
=
await
getPeers
({
"
leaf
"
:
leaf
});
const
jsonEntry
=
json3
.
leaf
.
value
;
const
sign
=
json3
.
leaf
.
value
.
signature
;
...
...
@@ -379,11 +381,13 @@ export class Synchroniser extends stream.Duplex {
entry
.
block
=
jsonEntry
.
block
entry
.
signature
=
sign
;
this
.
watcher
.
writeStatus
(
'
Peer
'
+
entry
.
pubkey
);
this
.
watcher
.
peersPercent
((
i
+
1
)
/
leavesToAdd
.
length
*
100
)
await
this
.
PeeringService
.
submitP
(
entry
,
false
,
to
===
undefined
);
}
catch
(
e
)
{
this
.
logger
.
warn
(
e
&&
e
.
message
||
e
)
}
}
this
.
watcher
.
peersPercent
(
100
)
}
else
{
this
.
watcher
.
writeStatus
(
'
Peers already known
'
);
...
...
This diff is collapsed.
Click to expand it.
app/modules/crawler/lib/sync/Watcher.ts
+
26
−
1
View file @
e324c04b
import
*
as
events
from
"
events
"
import
{
cliprogram
}
from
"
../../../../lib/common-libs/programOptions
"
const
multimeter
=
require
(
'
multimeter
'
)
...
...
@@ -8,10 +9,11 @@ export interface Watcher {
storagePercent
(
pct
?:
number
):
number
appliedPercent
(
pct
?:
number
):
number
sbxPercent
(
pct
?:
number
):
number
peersPercent
(
pct
?:
number
):
number
end
():
void
}
export
type
EventName
=
'
downloadChange
'
|
'
storageChange
'
|
'
appliedChange
'
|
'
sbxChange
'
export
type
EventName
=
'
downloadChange
'
|
'
storageChange
'
|
'
appliedChange
'
|
'
sbxChange
'
|
'
peersChange
'
export
class
EventWatcher
extends
events
.
EventEmitter
implements
Watcher
{
...
...
@@ -39,6 +41,10 @@ export class EventWatcher extends events.EventEmitter implements Watcher {
return
this
.
change
(
'
sbxChange
'
,
(
pct
)
=>
this
.
innerWatcher
.
sbxPercent
(
pct
),
pct
)
}
peersPercent
(
pct
?:
number
):
number
{
return
this
.
change
(
'
peersChange
'
,
(
pct
)
=>
this
.
innerWatcher
.
peersPercent
(
pct
),
pct
)
}
change
(
changeName
:
EventName
,
method
:
(
pct
?:
number
)
=>
number
,
pct
?:
number
)
{
if
(
pct
!==
undefined
&&
method
()
<
pct
)
{
this
.
emit
(
changeName
,
pct
||
0
)
...
...
@@ -65,6 +71,7 @@ export class MultimeterWatcher implements Watcher {
private
savedBar
:
any
private
downloadBar
:
any
private
sbxBar
:
any
private
peersBar
:
any
private
writtens
:
string
[]
=
[]
constructor
()
{
...
...
@@ -80,6 +87,10 @@ export class MultimeterWatcher implements Watcher {
this
.
appliedBar
=
this
.
createBar
(
'
Apply
'
,
5
)
this
.
sbxBar
=
this
.
createBar
(
'
Sandbox
'
,
6
)
if
(
!
cliprogram
.
nopeers
)
{
this
.
peersBar
=
this
.
createBar
(
'
Peers
'
,
7
)
}
this
.
multi
.
write
(
'
\n
Status:
'
);
this
.
charm
.
position
(
(
x
:
number
,
y
:
number
)
=>
{
...
...
@@ -93,6 +104,9 @@ export class MultimeterWatcher implements Watcher {
this
.
savedBar
.
percent
(
0
);
this
.
appliedBar
.
percent
(
0
);
this
.
sbxBar
.
percent
(
0
);
if
(
!
cliprogram
.
nopeers
)
{
this
.
peersBar
.
percent
(
0
);
}
}
writeStatus
(
str
:
string
)
{
...
...
@@ -120,6 +134,13 @@ export class MultimeterWatcher implements Watcher {
return
this
.
sbxBar
.
percent
(
pct
)
}
peersPercent
(
pct
:
number
)
{
if
(
!
cliprogram
.
nopeers
)
{
return
this
.
peersBar
.
percent
(
pct
)
}
return
0
}
end
()
{
this
.
multi
.
write
(
'
\n
All done.
\n
'
);
this
.
multi
.
destroy
();
...
...
@@ -177,6 +198,10 @@ export class LoggerWatcher implements Watcher {
return
0
}
peersPercent
(
pct
:
number
)
{
return
0
}
change
(
prop
:
'
downPct
'
|
'
savedPct
'
|
'
appliedPct
'
,
pct
:
number
)
{
if
(
pct
!==
undefined
)
{
let
changed
=
pct
>
this
[
prop
]
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment