Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
validator
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Odysseus
validator
Commits
972628b1
Commit
972628b1
authored
Jun 05, 2024
by
贾浩@五瓣科技
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
1c20f1db
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
25 deletions
+31
-25
config.toml
config.toml
+3
-3
quest.go
core/quest.go
+2
-1
tree.go
core/tree.go
+0
-1
merkle_sum_tree.go
tree/merkle_sum_tree.go
+26
-20
No files found.
config.toml
View file @
972628b1
...
...
@@ -8,7 +8,7 @@ api-listen = "0.0.0.0:20012"
private-key
=
"529f4efb80ac534f17d873104c71881c0970dbd5a886f183f63c5c6bb7a1fcd9"
chain-rpc
=
"https://dev.rpc.a
onet
.ai"
chain-rpc
=
"https://dev.rpc.a
gicoin
.ai"
store-contract
=
"0xA0ec84eCa14CD23afD5D7ba973390E83F0Cbe89A"
...
...
@@ -16,7 +16,7 @@ validator-contract = "0x7CBD03ecfA9093F83150E9625A25B00F555c81F7" # 测试版本
claim-monitor-server
=
"http://18.167.203.17:28080"
commit-offset
=
36
00
# utc + n seconds
commit-offset
=
18
00
# utc + n seconds
quest-host
=
"18.167.203.17"
...
...
@@ -26,4 +26,4 @@ quest-user = "admin"
quest-pass
=
"quest"
quest-db
=
"qdb"
quest-db
=
"qdb"
\ No newline at end of file
core/quest.go
View file @
972628b1
...
...
@@ -48,10 +48,11 @@ func (v *Validator) LoadMockProofs() {
common
.
HexToAddress
(
"0x7777777777777777777777777777777777777777"
),
common
.
HexToAddress
(
"0x8888888888888888888888888888888888888888"
),
common
.
HexToAddress
(
"0x9999999999999999999999999999999999999999"
),
common
.
HexToAddress
(
"0x99999999953AF2bC757C30824288A706D45fB44b"
),
}
proof
:=
&
validatorv1
.
ValidatedProof
{
Workload
:
100
,
Workload
:
100
0
,
}
for
_
,
address
:=
range
mockAddresses
{
...
...
core/tree.go
View file @
972628b1
...
...
@@ -38,7 +38,6 @@ func (v *Validator) CommitMST(proofMap map[common.Address]*validatorv1.Validated
}
st
:=
time
.
Now
()
mstTree
:=
tree
.
NewMerkleSumTree
(
keys
,
vals
)
rootNode
:=
mstTree
.
GetRoot
()
...
...
tree/merkle_sum_tree.go
View file @
972628b1
package
tree
import
(
"bytes"
"math/big"
"github.com/ethereum/go-ethereum/common"
...
...
@@ -8,7 +9,7 @@ import (
)
type
MerkleSumTree
struct
{
Levels
[][]
MerkleSumNode
Levels
[][]
*
MerkleSumNode
RootNode
*
MerkleSumNode
}
...
...
@@ -25,8 +26,8 @@ type Value struct {
}
func
NewMerkleSumTree
(
datas
[][]
byte
,
vals
[]
*
big
.
Int
)
*
MerkleSumTree
{
var
nodes
[]
MerkleSumNode
var
levels
[][]
MerkleSumNode
var
nodes
[]
*
MerkleSumNode
var
levels
[][]
*
MerkleSumNode
if
len
(
datas
)
==
1
{
return
&
MerkleSumTree
{
...
...
@@ -35,12 +36,18 @@ func NewMerkleSumTree(datas [][]byte, vals []*big.Int) *MerkleSumTree {
}
}
if
len
(
datas
)
%
2
!=
0
{
datas
=
append
(
datas
,
[]
byte
{}
)
for
i
:=
range
datas
{
nodes
=
append
(
nodes
,
buildToNode
(
datas
[
i
],
vals
[
i
])
)
}
for
i
:=
range
datas
{
nodes
=
append
(
nodes
,
*
buildToNode
(
datas
[
i
],
vals
[
i
]))
if
len
(
nodes
)
%
2
==
1
{
// raw = 0x09标识,添加到最后一层
nodes
=
append
(
nodes
,
&
MerkleSumNode
{
Value
:
Value
{
BigValue
:
big
.
NewInt
(
0
),
Raw
:
[]
byte
{
0x09
},
},
})
}
countOfDataNodes
:=
len
(
nodes
)
...
...
@@ -55,38 +62,37 @@ func NewMerkleSumTree(datas [][]byte, vals []*big.Int) *MerkleSumTree {
}
}
levels
=
[][]
MerkleSumNode
{
nodes
}
levels
=
[][]
*
MerkleSumNode
{
nodes
}
for
i
:=
0
;
i
<
counterOfLevels
;
i
++
{
var
level
[]
MerkleSumNode
var
level
[]
*
MerkleSumNode
lastNodeIndex
:=
len
(
nodes
)
-
1
for
j
:=
0
;
j
<=
lastNodeIndex
;
j
+=
2
{
if
j
==
lastNodeIndex
&&
lastNodeIndex
%
2
==
0
{
node
:=
newMerkleSumNode
(
&
nodes
[
j
],
nil
)
level
=
append
(
level
,
*
node
)
node
:=
newMerkleSumNode
(
nodes
[
j
],
nil
)
level
=
append
(
level
,
node
)
}
else
{
node
:=
newMerkleSumNode
(
&
nodes
[
j
],
&
nodes
[
j
+
1
])
level
=
append
(
level
,
*
node
)
node
:=
newMerkleSumNode
(
nodes
[
j
],
nodes
[
j
+
1
])
level
=
append
(
level
,
node
)
}
}
nodes
=
level
levels
=
append
(
levels
,
level
)
}
tree
:=
MerkleSumTree
{
levels
,
&
nodes
[
0
]}
tree
:=
MerkleSumTree
{
levels
,
nodes
[
0
]}
return
&
tree
}
func
newMerkleSumNode
(
left
,
right
*
MerkleSumNode
)
*
MerkleSumNode
{
var
node
MerkleSumNode
if
right
==
nil
{
concatLeftNodeData
:=
append
(
left
.
Value
.
BigValue
.
Bytes
(),
left
.
Value
.
Hash
[
:
]
...
)
concatRightNodeData
:=
append
(
big
.
NewInt
(
0
)
.
Bytes
(),
(
common
.
Hash
{})
.
Bytes
()
...
)
prevHashes
:=
append
(
concatLeftNodeData
,
concatRightNodeData
...
)
node
.
Value
.
Hash
=
crypto
.
Keccak256Hash
(
prevHashes
)
if
right
==
nil
||
(
right
!=
nil
&&
bytes
.
Equal
(
right
.
Value
.
Raw
,
[]
byte
{
0x09
}))
{
//
concatLeftNodeData := append(left.Value.BigValue.Bytes(), left.Value.Hash[:]...)
//
concatRightNodeData := append(big.NewInt(0).Bytes(), (common.Hash{}).Bytes()...)
// prevHashes := append(concatLeftNodeData
)
node
.
Value
.
Hash
=
left
.
Value
.
Hash
node
.
Value
.
BigValue
=
left
.
Value
.
BigValue
}
else
{
concatLeftNodeData
:=
append
(
left
.
Value
.
BigValue
.
Bytes
(),
left
.
Value
.
Hash
[
:
]
...
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment