Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
nucleo
Manage
Activity
Members
Labels
Plan
Issues
4
Issue boards
Milestones
Wiki
Code
Merge requests
1
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
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
blockchain
nucleo
Commits
e46f7a4b
Commit
e46f7a4b
authored
6 years ago
by
Robert Martin-Legene
Browse files
Options
Downloads
Patches
Plain Diff
Arreglando varias cosas
parent
fa2bb985
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
.gitignore
+2
-1
2 additions, 1 deletion
.gitignore
bin/monitor.js
+107
-91
107 additions, 91 deletions
bin/monitor.js
bin/start.sh
+7
-1
7 additions, 1 deletion
bin/start.sh
with
116 additions
and
93 deletions
.gitignore
+
2
−
1
View file @
e46f7a4b
*/lastseen
*/status
cache
*/cache
*/
*
cache
network*/node
network*/bootnode
network*/contracts/*
network/*.pid
This diff is collapsed.
Click to expand it.
bin/monitor.js
+
107
−
91
View file @
e46f7a4b
...
...
@@ -4,102 +4,118 @@
"
use strict
"
const
Libbfa
=
require
(
process
.
env
.
BFAHOME
+
'
/bin/libbfa.js
'
);
var
bfa
=
new
Libbfa
();
var
web3
=
bfa
.
newweb3
();
var
lastUnlock
=
0
;
const
Libbfa
=
require
(
process
.
env
.
BFAHOME
+
'
/bin/libbfa.js
'
);
var
bfa
=
new
Libbfa
();
var
web3
=
bfa
.
newweb3
();
var
lastUnlock
=
0
;
function
peerlist
()
function
readPeersCache
()
{
if
(
!
bfa
.
fs
.
existsSync
(
bfa
.
networkdir
+
'
/peers.cache
'
)
)
return
[];
var
data
=
bfa
.
fs
.
readFileSync
(
bfa
.
networkdir
+
'
/peers.cache
'
).
toString
();
if
(
data
.
length
>
0
)
var
p
=
data
.
split
(
/
\r?\n
/
);
// for some odd reason, I keep seeing empty entries
for
(
var
i
=
p
.
length
;
i
>
0
;
i
--
)
if
(
p
[
i
]
==
''
)
p
.
splice
(
i
,
1
);
return
p
;
}
function
writePeersCache
(
peers
)
{
// peers.cache is a list of peers we have connected out to in the past.
bfa
.
fs
.
writeFileSync
(
bfa
.
networkdir
+
'
/peers.cache
'
,
peers
.
join
(
"
\n
"
)
+
"
\n
"
,
{
mode
:
0o644
}
);
}
function
writeStatus
(
peers
)
{
web3
.
bfa
.
admin
.
peers
(
function
gotAdminPeers
(
nodelist
)
{
var
now
=
new
Date
();
var
nowpeers
=
[];
var
peers
=
[];
var
newpeers
=
[];
if
(
bfa
.
fs
.
existsSync
(
bfa
.
networkdir
+
'
/peers.cache
'
)
)
// write network/status
bfa
.
fs
.
writeFileSync
(
bfa
.
networkdir
+
'
/status
'
,
"
UTC:
"
+
new
Date
().
toUTCString
()
+
"
\n
"
+
"
BFA peers:
"
+
peers
.
length
+
"
\n
"
+
peers
.
sort
().
join
(
"
\n
"
)
+
"
\n
"
,
{
mode
:
0o644
}
);
}
function
parsenode
(
node
)
{
if
(
!
n
||
!
n
.
protocols
||
typeof
n
.
protocols
.
eth
!=
'
object
'
)
return
;
// default info - likely to get overwritten.
var
n
;
if
(
!
node
.
network
)
return
{
info
:
"
<
"
+
node
.
id
+
"
>
"
};
if
(
typeof
node
.
network
.
inbound
==
'
boolean
'
)
n
.
dir
=
node
.
network
.
inbound
?
"
in
"
:
"
out
"
;
if
(
typeof
node
.
enode
==
'
string
'
)
n
.
info
=
node
.
enode
;
else
{
if
(
node
.
id
)
n
.
info
+=
"
<
"
+
node
.
id
+
"
>
"
;
if
(
node
.
network
.
remoteAddress
)
{
if
(
n
.
info
)
n
.
info
+=
"
@
"
;
n
.
info
+=
node
.
network
.
remoteAddress
;
}
}
return
n
;
}
function
gotAdminPeers
(
nodelist
)
{
var
nowpeers
=
[];
var
peers
=
readPeersCache
();
var
outpeers
=
[];
var
candidatenew
=
[];
nodelist
.
forEach
(
function
(
node
)
{
var
n
=
parsenode
(
node
);
if
(
n
)
{
var
data
=
bfa
.
fs
.
readFileSync
(
bfa
.
networkdir
+
'
/peers.cache
'
).
toString
();
if
(
data
.
length
>
0
)
peers
=
data
.
split
(
/
\r?\n
/
);
var
i
=
peers
.
length
;
// for some odd reason, I keep seeing empty entries
while
(
i
--
>
0
)
if
(
peers
[
i
]
==
''
)
peers
.
splice
(
i
,
1
);
}
nodelist
.
forEach
(
function
(
node
)
{
if
(
'
object
'
==
typeof
(
node
.
protocols
.
eth
)
)
{
// default info - likely to get overwritten.
var
info
=
"
<
"
+
node
.
id
+
"
>
"
;
var
dir
=
""
;
if
(
undefined
!=
node
.
network
)
{
if
(
'
boolean
'
==
typeof
(
node
.
network
.
inbound
)
)
{
if
(
node
.
network
.
inbound
)
dir
=
"
in
"
;
else
dir
=
"
out
"
;
}
if
(
'
string
'
==
typeof
(
node
.
enode
)
)
{
info
=
node
.
enode
;
if
(
peers
.
indexOf
(
node
.
enode
)
==
-
1
&&
dir
==
"
out
"
)
newpeers
.
push
(
node
.
enode
);
}
else
{
info
=
""
;
if
(
undefined
!=
node
.
id
)
info
+=
"
<
"
+
node
.
id
+
"
>
"
;
if
(
undefined
!=
node
.
network
.
remoteAddress
)
{
if
(
info
!=
""
)
info
+=
"
@
"
;
info
+=
node
.
network
.
remoteAddress
;
}
}
}
nowpeers
.
push
(
"
peer
"
+
dir
+
"
:
"
+
info
);
}
nowpeers
.
push
(
"
peer
"
+
(
n
.
dir
?
n
.
dir
:
''
)
+
"
:
"
+
n
.
info
);
if
(
peers
.
indexOf
(
n
.
info
)
==
-
1
)
{
if
(
n
.
dir
==
'
out
'
)
outpeers
.
push
(
n
.
info
);
candidatenew
.
push
(
n
.
info
);
}
);
// write network/status
bfa
.
fs
.
writeFileSync
(
bfa
.
networkdir
+
'
/status
'
,
"
UTC:
"
+
now
.
toUTCString
()
+
"
\n
"
+
"
BFA peers:
"
+
nowpeers
.
length
+
"
\n
"
+
nowpeers
.
sort
().
join
(
"
\n
"
)
+
"
\n
"
,
{
mode
:
0o644
}
);
// Try to connect to a random node if we have very few peers
if
(
nowpeers
.
length
<
5
&&
peers
.
length
>
0
)
{
var
i
=
Math
.
floor
(
Math
.
random
()
*
peers
.
length
);
var
enode
=
peers
[
i
];
console
.
log
(
"
We have
"
+
nowpeers
.
length
+
"
peer
"
+
(
nowpeers
.
length
==
1
?
''
:
'
s
'
)
+
"
, so will try to connect to
"
+
enode
);
web3
.
bfa
.
admin
.
addPeer
(
enode
);
}
// write network/peers.cache
// peers.cache is a list of peers we have connected out to in the past.
peers
=
peers
.
concat
(
newpeers
);
if
(
peers
.
length
>
100
)
peers
.
splice
(
0
,
peers
.
length
-
100
);
bfa
.
fs
.
writeFileSync
(
bfa
.
networkdir
+
'
/peers.cache
'
,
peers
.
join
(
"
\n
"
)
+
"
\n
"
,
{
mode
:
0o644
}
);
}
);
writeStatus
(
nowpeers
);
// write peers.cache (max 100 entries, FIFO)
peers
=
peers
.
concat
(
outpeers
);
if
(
peers
.
length
>
100
)
peers
.
splice
(
0
,
peers
.
length
-
100
);
writePeersCache
(
peers
);
// Try to connect to a random node if we have very few peers
if
(
nowpeers
.
length
<
5
&&
candidatenew
.
length
>
0
)
{
var
i
=
Math
.
floor
(
Math
.
random
()
*
candidatenew
.
length
);
var
enode
=
candidatenew
[
i
];
console
.
log
(
"
We have
"
+
nowpeers
.
length
+
"
peer
"
+
(
nowpeers
.
length
==
1
?
''
:
'
s
'
)
+
"
, so will try to connect to
"
+
enode
);
web3
.
bfa
.
admin
.
addPeer
(
enode
);
}
}
function
peerlist
()
{
web3
.
bfa
.
admin
.
peers
(
gotAdminPeers
);
}
// Function to determine if our defaultAccount is allowed to seal/mine.
...
...
@@ -109,8 +125,8 @@ function mayseal()
var
me
=
web3
.
eth
.
defaultAccount
;
if
(
undefined
==
me
)
{
console
.
log
(
"
Failed to get default account information.
"
);
return
;
//
Failed to get default account information.
me
=
'
xxxx
'
}
me
=
me
.
toLowerCase
();
web3
.
eth
.
isMining
().
...
...
This diff is collapsed.
Click to expand it.
bin/start.sh
+
7
−
1
View file @
e46f7a4b
...
...
@@ -101,7 +101,13 @@ function startgeth
echo
'***'
echo
# (re)configure parameters (you never know if they changed)
flexargs
=
"
$(
getsyncmode
)
--extradata
$(
extradata
)
"
flexargs
=
"
$(
getsyncmode
)
"
xtra
=
$(
extradata
)
if
[
-n
"
$xtra
"
]
then
flexargs
=
"
${
flexargs
}
--extradata
$(
extradata
)
"
fi
unset
xtra
if
[
"
$netport
"
!=
30303
]
then
flexargs
=
"
${
flexargs
}
--net
$netport
"
...
...
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