Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
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
link33
plugin
Commits
c8eaee6f
Commit
c8eaee6f
authored
Apr 03, 2019
by
vipwzw
Committed by
33cn
Apr 03, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update 04/03
parent
7c5ce435
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
398 additions
and
96 deletions
+398
-96
Makefile
vendor/github.com/33cn/chain33/Makefile
+1
-1
blockstore.go
vendor/github.com/33cn/chain33/blockchain/blockstore.go
+25
-0
blockstore_test.go
vendor/github.com/33cn/chain33/blockchain/blockstore_test.go
+36
-0
chain_test.go
vendor/github.com/33cn/chain33/blockchain/chain_test.go
+6
-11
proc.go
vendor/github.com/33cn/chain33/blockchain/proc.go
+0
-13
process.go
vendor/github.com/33cn/chain33/blockchain/process.go
+0
-36
reindex.go
vendor/github.com/33cn/chain33/blockchain/reindex.go
+4
-4
restore.go
vendor/github.com/33cn/chain33/blockchain/restore.go
+104
-0
chain33.toml
vendor/github.com/33cn/chain33/cmd/chain33/chain33.toml
+3
-1
version.go
vendor/github.com/33cn/chain33/common/version/version.go
+18
-0
plugin_fee.go
vendor/github.com/33cn/chain33/executor/plugin_fee.go
+4
-5
downloadblocks.go
vendor/github.com/33cn/chain33/p2p/downloadblocks.go
+1
-1
base.go
vendor/github.com/33cn/chain33/system/store/base.go
+0
-3
Makefile
...thub.com/33cn/chain33/system/store/mavl/db/proto/Makefile
+2
-0
create_protobuf.sh
...3cn/chain33/system/store/mavl/db/proto/create_protobuf.sh
+2
-0
ticket.proto
....com/33cn/chain33/system/store/mavl/db/proto/ticket.proto
+20
-0
ticket.go
...ub.com/33cn/chain33/system/store/mavl/db/ticket/ticket.go
+1
-1
ticket.pb.go
...com/33cn/chain33/system/store/mavl/db/ticket/ticket.pb.go
+146
-0
tree.go
vendor/github.com/33cn/chain33/system/store/mavl/db/tree.go
+9
-9
ticket.pb.go
....com/33cn/chain33/system/store/mavl/db/types/ticket.pb.go
+0
-0
cfg.go
vendor/github.com/33cn/chain33/types/cfg.go
+2
-0
transaction.proto
vendor/github.com/33cn/chain33/types/proto/transaction.proto
+2
-1
transaction.pb.go
vendor/github.com/33cn/chain33/types/transaction.pb.go
+9
-9
chain33.go
vendor/github.com/33cn/chain33/util/cli/chain33.go
+3
-1
No files found.
vendor/github.com/33cn/chain33/Makefile
View file @
c8eaee6f
...
@@ -171,7 +171,7 @@ proto:protobuf
...
@@ -171,7 +171,7 @@ proto:protobuf
protobuf
:
##
Generate protbuf file of types package
protobuf
:
##
Generate protbuf file of types package
@
cd
types/proto
&&
./create_protobuf.sh
&&
cd
../..
@
cd
types/proto
&&
./create_protobuf.sh
&&
cd
../..
@
find ./system/dapp
-maxdepth
2
-type
d
-name
proto
-exec
make
-C
{}
\;
@
find ./system/dapp
./system/store/mavl
-maxdepth
2
-type
d
-name
proto
-exec
make
-C
{}
\;
depends
:
##
Generate depends file of types package
depends
:
##
Generate depends file of types package
@
find ./system/dapp
-maxdepth
2
-type
d
-name
cmd
-exec
make
-C
{}
OUT
=
"
$(MKDIR)
build/ci"
FLAG
=
\;
@
find ./system/dapp
-maxdepth
2
-type
d
-name
cmd
-exec
make
-C
{}
OUT
=
"
$(MKDIR)
build/ci"
FLAG
=
\;
...
...
vendor/github.com/33cn/chain33/blockchain/blockstore.go
View file @
c8eaee6f
...
@@ -1092,6 +1092,31 @@ func (bs *BlockStore) SetUpgradeMeta(meta *types.UpgradeMeta) error {
...
@@ -1092,6 +1092,31 @@ func (bs *BlockStore) SetUpgradeMeta(meta *types.UpgradeMeta) error {
return
bs
.
db
.
SetSync
(
version
.
LocalDBMeta
,
verByte
)
return
bs
.
db
.
SetSync
(
version
.
LocalDBMeta
,
verByte
)
}
}
//GetStoreUpgradeMeta 获取存在blockchain中的Store的数据库版本号
func
(
bs
*
BlockStore
)
GetStoreUpgradeMeta
()
(
*
types
.
UpgradeMeta
,
error
)
{
ver
:=
types
.
UpgradeMeta
{}
version
,
err
:=
bs
.
db
.
Get
(
version
.
StoreDBMeta
)
if
err
!=
nil
&&
err
!=
dbm
.
ErrNotFoundInDb
{
return
nil
,
err
}
if
len
(
version
)
==
0
{
return
&
types
.
UpgradeMeta
{
Version
:
"0.0.0"
},
nil
}
err
=
types
.
Decode
(
version
,
&
ver
)
if
err
!=
nil
{
return
nil
,
err
}
storeLog
.
Info
(
"GetStoreUpgradeMeta"
,
"blockchain db version"
,
ver
)
return
&
ver
,
nil
}
//SetStoreUpgradeMeta 设置blockchain中的Store的数据库版本号
func
(
bs
*
BlockStore
)
SetStoreUpgradeMeta
(
meta
*
types
.
UpgradeMeta
)
error
{
verByte
:=
types
.
Encode
(
meta
)
storeLog
.
Info
(
"SetStoreUpgradeMeta"
,
"meta"
,
meta
)
return
bs
.
db
.
SetSync
(
version
.
StoreDBMeta
,
verByte
)
}
//isRecordBlockSequence配置的合法性检测
//isRecordBlockSequence配置的合法性检测
func
(
bs
*
BlockStore
)
isRecordBlockSequenceValid
(
chain
*
BlockChain
)
{
func
(
bs
*
BlockStore
)
isRecordBlockSequenceValid
(
chain
*
BlockChain
)
{
lastHeight
:=
bs
.
Height
()
lastHeight
:=
bs
.
Height
()
...
...
vendor/github.com/33cn/chain33/blockchain/blockstore_test.go
0 → 100644
View file @
c8eaee6f
package
blockchain_test
import
(
"testing"
"io/ioutil"
"os"
"github.com/33cn/chain33/blockchain"
dbm
"github.com/33cn/chain33/common/db"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func
TestGetStoreUpgradeMeta
(
t
*
testing
.
T
)
{
dir
,
err
:=
ioutil
.
TempDir
(
""
,
"example"
)
assert
.
Nil
(
t
,
err
)
defer
os
.
RemoveAll
(
dir
)
// clean up
os
.
RemoveAll
(
dir
)
//删除已存在目录
blockStoreDB
:=
dbm
.
NewDB
(
"blockchain"
,
"leveldb"
,
dir
,
100
)
blockStore
:=
blockchain
.
NewBlockStore
(
nil
,
blockStoreDB
,
nil
)
require
.
NotNil
(
t
,
blockStore
)
meta
,
err
:=
blockStore
.
GetStoreUpgradeMeta
()
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
meta
.
Version
,
"0.0.0"
)
meta
.
Version
=
"1.0.0"
err
=
blockStore
.
SetStoreUpgradeMeta
(
meta
)
require
.
NoError
(
t
,
err
)
meta
,
err
=
blockStore
.
GetStoreUpgradeMeta
()
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
meta
.
Version
,
"1.0.0"
)
}
vendor/github.com/33cn/chain33/blockchain/chain_test.go
View file @
c8eaee6f
...
@@ -128,7 +128,7 @@ func TestBlockChain(t *testing.T) {
...
@@ -128,7 +128,7 @@ func TestBlockChain(t *testing.T) {
testWriteBlockToDbTemp
(
t
,
blockchain
)
testWriteBlockToDbTemp
(
t
,
blockchain
)
testReadBlockToExec
(
t
,
blockchain
)
testReadBlockToExec
(
t
,
blockchain
)
testReExecBlock
(
t
,
blockchain
)
testReExecBlock
(
t
,
blockchain
)
test
ReExecBlockMsg
(
t
,
mock33
,
blockchain
)
test
UpgradeStore
(
t
,
blockchain
)
}
}
func
testProcAddBlockMsg
(
t
*
testing
.
T
,
mock33
*
testnode
.
Chain33Mock
,
blockchain
*
blockchain
.
BlockChain
)
{
func
testProcAddBlockMsg
(
t
*
testing
.
T
,
mock33
*
testnode
.
Chain33Mock
,
blockchain
*
blockchain
.
BlockChain
)
{
...
@@ -1115,17 +1115,12 @@ func testWriteBlockToDbTemp(t *testing.T, chain *blockchain.BlockChain) {
...
@@ -1115,17 +1115,12 @@ func testWriteBlockToDbTemp(t *testing.T, chain *blockchain.BlockChain) {
func
testReExecBlock
(
t
*
testing
.
T
,
chain
*
blockchain
.
BlockChain
)
{
func
testReExecBlock
(
t
*
testing
.
T
,
chain
*
blockchain
.
BlockChain
)
{
chainlog
.
Info
(
"ReExecBlock begin ---------------------"
)
chainlog
.
Info
(
"ReExecBlock begin ---------------------"
)
curheight
:=
chain
.
GetBlockHeight
()
curheight
:=
chain
.
GetBlockHeight
()
chain
.
Process
ReExecBlock
(
0
,
curheight
)
chain
.
ReExecBlock
(
0
,
curheight
)
chainlog
.
Info
(
"ReExecBlock end ---------------------"
)
chainlog
.
Info
(
"ReExecBlock end ---------------------"
)
}
}
func
testReExecBlockMsg
(
t
*
testing
.
T
,
mock33
*
testnode
.
Chain33Mock
,
chain
*
blockchain
.
BlockChain
)
{
func
testUpgradeStore
(
t
*
testing
.
T
,
chain
*
blockchain
.
BlockChain
)
{
var
err
error
chainlog
.
Info
(
"UpgradeStore begin ---------------------"
)
client
:=
mock33
.
GetClient
()
chain
.
UpgradeStore
()
msg1
:=
client
.
NewMessage
(
"blockchain"
,
types
.
EventReExecBlock
,
&
types
.
ReqInt
{
Height
:
8
})
chainlog
.
Info
(
"UpgradeStore end ---------------------"
)
err
=
client
.
Send
(
msg1
,
true
)
require
.
NoError
(
t
,
err
)
_
,
err
=
client
.
Wait
(
msg1
)
require
.
NoError
(
t
,
err
)
time
.
Sleep
(
time
.
Millisecond
*
20
)
}
}
vendor/github.com/33cn/chain33/blockchain/proc.go
View file @
c8eaee6f
...
@@ -90,8 +90,6 @@ func (chain *BlockChain) ProcRecvMsg() {
...
@@ -90,8 +90,6 @@ func (chain *BlockChain) ProcRecvMsg() {
case
types
.
EventGetSeqCBLastNum
:
case
types
.
EventGetSeqCBLastNum
:
go
chain
.
processMsg
(
msg
,
reqnum
,
chain
.
getSeqCBLastNum
)
go
chain
.
processMsg
(
msg
,
reqnum
,
chain
.
getSeqCBLastNum
)
case
types
.
EventReExecBlock
:
go
chain
.
processMsg
(
msg
,
reqnum
,
chain
.
reExecBlock
)
default
:
default
:
go
chain
.
processMsg
(
msg
,
reqnum
,
chain
.
unknowMsg
)
go
chain
.
processMsg
(
msg
,
reqnum
,
chain
.
unknowMsg
)
}
}
...
@@ -135,17 +133,6 @@ func (chain *BlockChain) getSeqCBLastNum(msg *queue.Message) {
...
@@ -135,17 +133,6 @@ func (chain *BlockChain) getSeqCBLastNum(msg *queue.Message) {
msg
.
Reply
(
chain
.
client
.
NewMessage
(
"rpc"
,
types
.
EventGetSeqCBLastNum
,
lastNum
))
msg
.
Reply
(
chain
.
client
.
NewMessage
(
"rpc"
,
types
.
EventGetSeqCBLastNum
,
lastNum
))
}
}
func
(
chain
*
BlockChain
)
reExecBlock
(
msg
*
queue
.
Message
)
{
data
:=
(
msg
.
Data
)
.
(
*
types
.
ReqInt
)
curHeight
:=
chain
.
GetBlockHeight
()
if
curHeight
<
data
.
Height
{
msg
.
Reply
(
chain
.
client
.
NewMessage
(
"store"
,
types
.
EventReExecBlock
,
&
types
.
ReplyString
{
Data
:
"none"
}))
return
}
msg
.
Reply
(
chain
.
client
.
NewMessage
(
"store"
,
types
.
EventReExecBlock
,
&
types
.
ReplyString
{
Data
:
"need"
}))
chain
.
ProcessReExecBlock
(
data
.
Height
,
curHeight
)
}
func
(
chain
*
BlockChain
)
queryTx
(
msg
*
queue
.
Message
)
{
func
(
chain
*
BlockChain
)
queryTx
(
msg
*
queue
.
Message
)
{
txhash
:=
(
msg
.
Data
)
.
(
*
types
.
ReqHash
)
txhash
:=
(
msg
.
Data
)
.
(
*
types
.
ReqHash
)
TransactionDetail
,
err
:=
chain
.
ProcQueryTxMsg
(
txhash
.
Hash
)
TransactionDetail
,
err
:=
chain
.
ProcQueryTxMsg
(
txhash
.
Hash
)
...
...
vendor/github.com/33cn/chain33/blockchain/process.go
View file @
c8eaee6f
...
@@ -10,8 +10,6 @@ import (
...
@@ -10,8 +10,6 @@ import (
"math/big"
"math/big"
"sync/atomic"
"sync/atomic"
"fmt"
"github.com/33cn/chain33/client/api"
"github.com/33cn/chain33/client/api"
"github.com/33cn/chain33/common"
"github.com/33cn/chain33/common"
"github.com/33cn/chain33/common/difficulty"
"github.com/33cn/chain33/common/difficulty"
...
@@ -601,40 +599,6 @@ func (b *BlockChain) ProcessDelParaChainBlock(broadcast bool, blockdetail *types
...
@@ -601,40 +599,6 @@ func (b *BlockChain) ProcessDelParaChainBlock(broadcast bool, blockdetail *types
return
nil
,
true
,
false
,
nil
return
nil
,
true
,
false
,
nil
}
}
// ProcessReExecBlock 从对应高度本地重新执行区块
func
(
b
*
BlockChain
)
ProcessReExecBlock
(
startHeight
,
curHeight
int64
)
{
var
prevStateHash
[]
byte
if
startHeight
>
0
{
blockdetail
,
err
:=
b
.
GetBlock
(
startHeight
-
1
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"get height=%d err, this not allow fail"
,
startHeight
-
1
))
}
prevStateHash
=
blockdetail
.
Block
.
StateHash
}
for
i
:=
startHeight
;
i
<=
curHeight
;
i
++
{
blockdetail
,
err
:=
b
.
GetBlock
(
i
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"get height=%d err, this not allow fail"
,
i
))
}
block
:=
blockdetail
.
Block
err
=
execBlockUpgrade
(
b
.
client
,
prevStateHash
,
block
,
false
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"execBlockEx height=%d err=%s, this not allow fail"
,
i
,
err
.
Error
()))
}
prevStateHash
=
block
.
StateHash
}
// 通知执行结束
msg
:=
b
.
client
.
NewMessage
(
"store"
,
types
.
EventReExecBlock
,
&
types
.
ReplyString
{
Data
:
"over"
})
err
:=
b
.
client
.
Send
(
msg
,
true
)
if
err
!=
nil
{
return
}
_
,
err
=
b
.
client
.
Wait
(
msg
)
if
err
!=
nil
{
return
}
}
// IsRecordFaultErr 检测此错误是否要记录到故障错误中
// IsRecordFaultErr 检测此错误是否要记录到故障错误中
func
IsRecordFaultErr
(
err
error
)
bool
{
func
IsRecordFaultErr
(
err
error
)
bool
{
return
err
!=
types
.
ErrFutureBlock
&&
!
api
.
IsGrpcError
(
err
)
&&
!
api
.
IsQueueError
(
err
)
return
err
!=
types
.
ErrFutureBlock
&&
!
api
.
IsGrpcError
(
err
)
&&
!
api
.
IsQueueError
(
err
)
...
...
vendor/github.com/33cn/chain33/blockchain/reindex.go
View file @
c8eaee6f
...
@@ -29,7 +29,7 @@ func (chain *BlockChain) UpgradeChain() {
...
@@ -29,7 +29,7 @@ func (chain *BlockChain) UpgradeChain() {
}
}
if
chain
.
needReIndex
(
meta
)
{
if
chain
.
needReIndex
(
meta
)
{
//如果没有开始重建index,那么先del all keys
//如果没有开始重建index,那么先del all keys
if
!
meta
.
Index
ing
{
if
!
meta
.
Start
ing
{
chainlog
.
Info
(
"begin del all keys"
)
chainlog
.
Info
(
"begin del all keys"
)
chain
.
blockStore
.
delAllKeys
()
chain
.
blockStore
.
delAllKeys
()
chainlog
.
Info
(
"end del all keys"
)
chainlog
.
Info
(
"end del all keys"
)
...
@@ -38,7 +38,7 @@ func (chain *BlockChain) UpgradeChain() {
...
@@ -38,7 +38,7 @@ func (chain *BlockChain) UpgradeChain() {
//reindex 的过程中,会每个高度都去更新meta
//reindex 的过程中,会每个高度都去更新meta
chain
.
reIndex
(
start
,
curheight
)
chain
.
reIndex
(
start
,
curheight
)
meta
:=
&
types
.
UpgradeMeta
{
meta
:=
&
types
.
UpgradeMeta
{
Index
ing
:
false
,
Start
ing
:
false
,
Version
:
version
.
GetLocalDBVersion
(),
Version
:
version
.
GetLocalDBVersion
(),
Height
:
0
,
Height
:
0
,
}
}
...
@@ -59,7 +59,7 @@ func (chain *BlockChain) reIndex(start, end int64) {
...
@@ -59,7 +59,7 @@ func (chain *BlockChain) reIndex(start, end int64) {
}
}
func
(
chain
*
BlockChain
)
needReIndex
(
meta
*
types
.
UpgradeMeta
)
bool
{
func
(
chain
*
BlockChain
)
needReIndex
(
meta
*
types
.
UpgradeMeta
)
bool
{
if
meta
.
Index
ing
{
//正在index
if
meta
.
Start
ing
{
//正在index
return
true
return
true
}
}
v1
:=
meta
.
Version
v1
:=
meta
.
Version
...
@@ -89,7 +89,7 @@ func (chain *BlockChain) reIndexOne(height int64) error {
...
@@ -89,7 +89,7 @@ func (chain *BlockChain) reIndexOne(height int64) error {
panic
(
err
)
panic
(
err
)
}
}
meta
:=
&
types
.
UpgradeMeta
{
meta
:=
&
types
.
UpgradeMeta
{
Index
ing
:
true
,
Start
ing
:
true
,
Version
:
version
.
GetLocalDBVersion
(),
Version
:
version
.
GetLocalDBVersion
(),
Height
:
height
+
1
,
Height
:
height
+
1
,
}
}
...
...
vendor/github.com/33cn/chain33/blockchain/restore.go
0 → 100644
View file @
c8eaee6f
// Copyright Fuzamei Corp. 2018 All Rights Reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package
blockchain
import
(
"strings"
"fmt"
"github.com/33cn/chain33/common/version"
"github.com/33cn/chain33/types"
)
// Upgrade 升级localDB和storeDB
func
(
chain
*
BlockChain
)
Upgrade
()
{
chain
.
UpgradeChain
()
chain
.
UpgradeStore
()
}
//UpgradeStore 升级storedb
func
(
chain
*
BlockChain
)
UpgradeStore
()
{
meta
,
err
:=
chain
.
blockStore
.
GetStoreUpgradeMeta
()
if
err
!=
nil
{
panic
(
err
)
}
curheight
:=
chain
.
GetBlockHeight
()
if
curheight
==
-
1
{
meta
=
&
types
.
UpgradeMeta
{
Version
:
version
.
GetStoreDBVersion
(),
}
err
=
chain
.
blockStore
.
SetStoreUpgradeMeta
(
meta
)
if
err
!=
nil
{
panic
(
err
)
}
}
if
chain
.
needReExec
(
meta
)
{
start
:=
meta
.
Height
//reExecBlock 的过程中,会每个高度都去更新meta
chain
.
ReExecBlock
(
start
,
curheight
)
meta
:=
&
types
.
UpgradeMeta
{
Starting
:
false
,
Version
:
version
.
GetStoreDBVersion
(),
Height
:
0
,
}
err
=
chain
.
blockStore
.
SetStoreUpgradeMeta
(
meta
)
if
err
!=
nil
{
panic
(
err
)
}
}
}
// ReExecBlock 从对应高度本地重新执行区块
func
(
chain
*
BlockChain
)
ReExecBlock
(
startHeight
,
curHeight
int64
)
{
var
prevStateHash
[]
byte
if
startHeight
>
0
{
blockdetail
,
err
:=
chain
.
GetBlock
(
startHeight
-
1
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"get height=%d err, this not allow fail"
,
startHeight
-
1
))
}
prevStateHash
=
blockdetail
.
Block
.
StateHash
}
for
i
:=
startHeight
;
i
<=
curHeight
;
i
++
{
blockdetail
,
err
:=
chain
.
GetBlock
(
i
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"get height=%d err, this not allow fail"
,
i
))
}
block
:=
blockdetail
.
Block
err
=
execBlockUpgrade
(
chain
.
client
,
prevStateHash
,
block
,
false
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"execBlockEx height=%d err=%s, this not allow fail"
,
i
,
err
.
Error
()))
}
prevStateHash
=
block
.
StateHash
//更新高度
err
=
chain
.
upgradeMeta
(
startHeight
)
if
err
!=
nil
{
panic
(
err
)
}
}
}
func
(
chain
*
BlockChain
)
needReExec
(
meta
*
types
.
UpgradeMeta
)
bool
{
if
meta
.
Starting
{
//正在
return
true
}
v1
:=
meta
.
Version
v2
:=
version
.
GetStoreDBVersion
()
v1arr
:=
strings
.
Split
(
v1
,
"."
)
v2arr
:=
strings
.
Split
(
v2
,
"."
)
if
len
(
v1arr
)
!=
3
||
len
(
v2arr
)
!=
3
{
panic
(
"upgrade store meta version error"
)
}
return
v1arr
[
0
]
!=
v2arr
[
0
]
}
func
(
chain
*
BlockChain
)
upgradeMeta
(
height
int64
)
error
{
meta
:=
&
types
.
UpgradeMeta
{
Starting
:
true
,
Version
:
version
.
GetStoreDBVersion
(),
Height
:
height
+
1
,
}
return
chain
.
blockStore
.
SetStoreUpgradeMeta
(
meta
)
}
vendor/github.com/33cn/chain33/cmd/chain33/chain33.toml
View file @
c8eaee6f
...
@@ -200,8 +200,10 @@ driver="leveldb"
...
@@ -200,8 +200,10 @@ driver="leveldb"
dbPath
=
"datadir/mavltree"
dbPath
=
"datadir/mavltree"
# Cache大小
# Cache大小
dbCache
=
128
dbCache
=
128
# 数据库版本
#
local
数据库版本
localdbVersion
=
"1.0.0"
localdbVersion
=
"1.0.0"
# store数据库版本
storedbVersion
=
"1.0.0"
[store.sub.mavl]
[store.sub.mavl]
# 是否使能mavl加前缀
# 是否使能mavl加前缀
...
...
vendor/github.com/33cn/chain33/common/version/version.go
View file @
c8eaee6f
...
@@ -12,8 +12,10 @@ var (
...
@@ -12,8 +12,10 @@ var (
WalletVerKey
=
[]
byte
(
"WalletVerKey"
)
WalletVerKey
=
[]
byte
(
"WalletVerKey"
)
BlockChainVerKey
=
[]
byte
(
"BlockChainVerKey"
)
BlockChainVerKey
=
[]
byte
(
"BlockChainVerKey"
)
LocalDBMeta
=
[]
byte
(
"LocalDBMeta"
)
LocalDBMeta
=
[]
byte
(
"LocalDBMeta"
)
StoreDBMeta
=
[]
byte
(
"StoreDBMeta"
)
MavlTreeVerKey
=
[]
byte
(
"MavlTreeVerKey"
)
MavlTreeVerKey
=
[]
byte
(
"MavlTreeVerKey"
)
localversion
=
"1.0.0"
localversion
=
"1.0.0"
storeversion
=
"1.0.0"
appversion
=
"1.0.0"
appversion
=
"1.0.0"
GitCommit
string
GitCommit
string
)
)
...
@@ -49,6 +51,22 @@ func SetLocalDBVersion(version string) {
...
@@ -49,6 +51,22 @@ func SetLocalDBVersion(version string) {
}
}
}
}
//GetStoreDBVersion 数据库版本解析
/*
格式: v1.v2.v3
如果: v1 升级了, 那么意味着storedb 需要升级
*/
func
GetStoreDBVersion
()
string
{
return
storeversion
}
//SetStoreDBVersion 通过设置版本号,强制重建数据库
func
SetStoreDBVersion
(
version
string
)
{
if
version
!=
""
{
storeversion
=
version
}
}
//GetAppVersion 获取应用 app 的版本
//GetAppVersion 获取应用 app 的版本
func
GetAppVersion
()
string
{
func
GetAppVersion
()
string
{
return
appversion
return
appversion
...
...
vendor/github.com/33cn/chain33/executor/plugin_fee.go
View file @
c8eaee6f
...
@@ -12,7 +12,6 @@ func init() {
...
@@ -12,7 +12,6 @@ func init() {
type
feePlugin
struct
{
type
feePlugin
struct
{
pluginBase
pluginBase
fee
types
.
TotalFee
}
}
func
(
p
*
feePlugin
)
CheckEnable
(
executor
*
executor
,
enable
bool
)
(
kvs
[]
*
types
.
KeyValue
,
ok
bool
,
err
error
)
{
func
(
p
*
feePlugin
)
CheckEnable
(
executor
*
executor
,
enable
bool
)
(
kvs
[]
*
types
.
KeyValue
,
ok
bool
,
err
error
)
{
...
@@ -20,13 +19,13 @@ func (p *feePlugin) CheckEnable(executor *executor, enable bool) (kvs []*types.K
...
@@ -20,13 +19,13 @@ func (p *feePlugin) CheckEnable(executor *executor, enable bool) (kvs []*types.K
}
}
func
(
p
*
feePlugin
)
ExecLocal
(
executor
*
executor
,
data
*
types
.
BlockDetail
)
([]
*
types
.
KeyValue
,
error
)
{
func
(
p
*
feePlugin
)
ExecLocal
(
executor
*
executor
,
data
*
types
.
BlockDetail
)
([]
*
types
.
KeyValue
,
error
)
{
p
.
fee
=
types
.
TotalFee
{}
fee
:=
&
types
.
TotalFee
{}
for
i
:=
0
;
i
<
len
(
data
.
Block
.
Txs
);
i
++
{
for
i
:=
0
;
i
<
len
(
data
.
Block
.
Txs
);
i
++
{
tx
:=
data
.
Block
.
Txs
[
i
]
tx
:=
data
.
Block
.
Txs
[
i
]
p
.
fee
.
Fee
+=
tx
.
Fee
fee
.
Fee
+=
tx
.
Fee
p
.
fee
.
TxCount
++
fee
.
TxCount
++
}
}
kv
,
err
:=
saveFee
(
executor
,
&
p
.
fee
,
data
.
Block
.
ParentHash
,
data
.
Block
.
Hash
())
kv
,
err
:=
saveFee
(
executor
,
fee
,
data
.
Block
.
ParentHash
,
data
.
Block
.
Hash
())
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
vendor/github.com/33cn/chain33/p2p/downloadblocks.go
View file @
c8eaee6f
...
@@ -284,7 +284,7 @@ func (d *DownloadJob) syncDownloadBlock(peer *Peer, inv *pb.Inventory, bchan cha
...
@@ -284,7 +284,7 @@ func (d *DownloadJob) syncDownloadBlock(peer *Peer, inv *pb.Inventory, bchan cha
RECV
:
RECV
:
for
_
,
item
:=
range
invdatas
.
Items
{
for
_
,
item
:=
range
invdatas
.
Items
{
bchan
<-
&
pb
.
BlockPid
{
Pid
:
peer
.
GetPeerName
(),
Block
:
item
.
GetBlock
()}
//下载完成后插入bchan
bchan
<-
&
pb
.
BlockPid
{
Pid
:
peer
.
GetPeerName
(),
Block
:
item
.
GetBlock
()}
//下载完成后插入bchan
log
.
Debug
(
"download"
,
"frompeer"
,
peer
.
Addr
(),
"blockheight"
,
inv
.
GetHeight
(),
"Blocksize"
,
item
.
GetBlock
()
.
XXX_
Size
())
log
.
Debug
(
"download"
,
"frompeer"
,
peer
.
Addr
(),
"blockheight"
,
inv
.
GetHeight
(),
"Blocksize"
,
item
.
GetBlock
()
.
Size
())
}
}
}
}
}
}
vendor/github.com/33cn/chain33/system/store/base.go
View file @
c8eaee6f
...
@@ -86,9 +86,6 @@ func (store *BaseStore) SetQueueClient(c queue.Client) {
...
@@ -86,9 +86,6 @@ func (store *BaseStore) SetQueueClient(c queue.Client) {
}
}
store
.
done
<-
struct
{}{}
store
.
done
<-
struct
{}{}
}()
}()
if
store
.
child
!=
nil
{
store
.
child
.
ProcEvent
(
nil
)
}
}
}
//Wait wait for basestore ready
//Wait wait for basestore ready
...
...
vendor/github.com/33cn/chain33/system/store/mavl/db/proto/Makefile
0 → 100644
View file @
c8eaee6f
all
:
sh ./create_protobuf.sh
vendor/github.com/33cn/chain33/system/store/mavl/db/proto/create_protobuf.sh
0 → 100755
View file @
c8eaee6f
#!/bin/sh
protoc
--go_out
=
plugins
=
grpc:../ticket ./
*
.proto
--proto_path
=
.
--proto_path
=
"
$GOPATH
/src/github.com/33cn/chain33/types/proto/"
vendor/github.com/33cn/chain33/system/store/mavl/db/proto/ticket.proto
0 → 100644
View file @
c8eaee6f
syntax
=
"proto3"
;
package
ticket
;
message
Ticket
{
string
ticketId
=
1
;
// 0 -> 未成熟 1 -> 可挖矿 2 -> 已挖成功 3-> 已关闭
int32
status
=
2
;
// genesis 创建的私钥比较特殊
bool
isGenesis
=
3
;
//创建时间
int64
createTime
=
4
;
//挖矿时间
int64
minerTime
=
5
;
//挖到的币的数目
int64
minerValue
=
8
;
string
minerAddress
=
6
;
// return wallet
string
returnAddress
=
7
;
}
\ No newline at end of file
vendor/github.com/33cn/chain33/system/store/mavl/db/t
ypes
/ticket.go
→
vendor/github.com/33cn/chain33/system/store/mavl/db/t
icket
/ticket.go
View file @
c8eaee6f
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// license that can be found in the LICENSE file.
package
t
ypes
package
t
icket
var
(
var
(
// TicketPrefix ticket prefix
// TicketPrefix ticket prefix
...
...
vendor/github.com/33cn/chain33/system/store/mavl/db/ticket/ticket.pb.go
0 → 100644
View file @
c8eaee6f
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: ticket.proto
package
ticket
import
(
fmt
"fmt"
math
"math"
proto
"github.com/golang/protobuf/proto"
)
// Reference imports to suppress errors if they are not otherwise used.
var
_
=
proto
.
Marshal
var
_
=
fmt
.
Errorf
var
_
=
math
.
Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const
_
=
proto
.
ProtoPackageIsVersion2
// please upgrade the proto package
type
Ticket
struct
{
TicketId
string
`protobuf:"bytes,1,opt,name=ticketId,proto3" json:"ticketId,omitempty"`
// 0 -> 未成熟 1 -> 可挖矿 2 -> 已挖成功 3-> 已关闭
Status
int32
`protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
// genesis 创建的私钥比较特殊
IsGenesis
bool
`protobuf:"varint,3,opt,name=isGenesis,proto3" json:"isGenesis,omitempty"`
//创建时间
CreateTime
int64
`protobuf:"varint,4,opt,name=createTime,proto3" json:"createTime,omitempty"`
//挖矿时间
MinerTime
int64
`protobuf:"varint,5,opt,name=minerTime,proto3" json:"minerTime,omitempty"`
//挖到的币的数目
MinerValue
int64
`protobuf:"varint,8,opt,name=minerValue,proto3" json:"minerValue,omitempty"`
MinerAddress
string
`protobuf:"bytes,6,opt,name=minerAddress,proto3" json:"minerAddress,omitempty"`
// return wallet
ReturnAddress
string
`protobuf:"bytes,7,opt,name=returnAddress,proto3" json:"returnAddress,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
Ticket
)
Reset
()
{
*
m
=
Ticket
{}
}
func
(
m
*
Ticket
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
Ticket
)
ProtoMessage
()
{}
func
(
*
Ticket
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_98a6c21780e82d22
,
[]
int
{
0
}
}
func
(
m
*
Ticket
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_Ticket
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
Ticket
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_Ticket
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
Ticket
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_Ticket
.
Merge
(
m
,
src
)
}
func
(
m
*
Ticket
)
XXX_Size
()
int
{
return
xxx_messageInfo_Ticket
.
Size
(
m
)
}
func
(
m
*
Ticket
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_Ticket
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_Ticket
proto
.
InternalMessageInfo
func
(
m
*
Ticket
)
GetTicketId
()
string
{
if
m
!=
nil
{
return
m
.
TicketId
}
return
""
}
func
(
m
*
Ticket
)
GetStatus
()
int32
{
if
m
!=
nil
{
return
m
.
Status
}
return
0
}
func
(
m
*
Ticket
)
GetIsGenesis
()
bool
{
if
m
!=
nil
{
return
m
.
IsGenesis
}
return
false
}
func
(
m
*
Ticket
)
GetCreateTime
()
int64
{
if
m
!=
nil
{
return
m
.
CreateTime
}
return
0
}
func
(
m
*
Ticket
)
GetMinerTime
()
int64
{
if
m
!=
nil
{
return
m
.
MinerTime
}
return
0
}
func
(
m
*
Ticket
)
GetMinerValue
()
int64
{
if
m
!=
nil
{
return
m
.
MinerValue
}
return
0
}
func
(
m
*
Ticket
)
GetMinerAddress
()
string
{
if
m
!=
nil
{
return
m
.
MinerAddress
}
return
""
}
func
(
m
*
Ticket
)
GetReturnAddress
()
string
{
if
m
!=
nil
{
return
m
.
ReturnAddress
}
return
""
}
func
init
()
{
proto
.
RegisterType
((
*
Ticket
)(
nil
),
"ticket.Ticket"
)
}
func
init
()
{
proto
.
RegisterFile
(
"ticket.proto"
,
fileDescriptor_98a6c21780e82d22
)
}
var
fileDescriptor_98a6c21780e82d22
=
[]
byte
{
// 196 bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0x54
,
0x90
,
0xb1
,
0xae
,
0x82
,
0x30
,
0x14
,
0x86
,
0x53
,
0xb8
,
0xf4
,
0xc2
,
0x09
,
0x77
,
0xe9
,
0x70
,
0xd3
,
0x18
,
0x63
,
0x1a
,
0xe2
,
0xd0
,
0xc9
,
0xc5
,
0x27
,
0x70
,
0x32
,
0xae
,
0x0d
,
0x71
,
0x47
,
0x38
,
0x43
,
0xa3
,
0x80
,
0x69
,
0xcb
,
0x0b
,
0xf8
,
0xe4
,
0x86
,
0x83
,
0x8a
,
0x6c
,
0xfd
,
0xbe
,
0xff
,
0xff
,
0x93
,
0xe6
,
0x40
,
0x1e
,
0x6c
,
0x7d
,
0xc5
,
0xb0
,
0xbb
,
0xbb
,
0x3e
,
0xf4
,
0x82
,
0x4f
,
0x54
,
0x3c
,
0x22
,
0xe0
,
0x25
,
0x3d
,
0xc5
,
0x0a
,
0xd2
,
0x49
,
0x9e
,
0x1a
,
0xc9
,
0x14
,
0xd3
,
0x99
,
0xf9
,
0xb0
,
0xf8
,
0x07
,
0xee
,
0x43
,
0x15
,
0x06
,
0x2f
,
0x23
,
0xc5
,
0x74
,
0x62
,
0x5e
,
0x24
,
0xd6
,
0x90
,
0x59
,
0x7f
,
0xc4
,
0x0e
,
0xbd
,
0xf5
,
0x32
,
0x56
,
0x4c
,
0xa7
,
0x66
,
0x16
,
0x62
,
0x03
,
0x50
,
0x3b
,
0xac
,
0x02
,
0x96
,
0xb6
,
0x45
,
0xf9
,
0xa3
,
0x98
,
0x8e
,
0xcd
,
0x97
,
0x19
,
0xd7
,
0xad
,
0xed
,
0xd0
,
0x51
,
0x9c
,
0x50
,
0x3c
,
0x8b
,
0x71
,
0x4d
,
0x70
,
0xae
,
0x6e
,
0x03
,
0xca
,
0x74
,
0x5a
,
0xcf
,
0x46
,
0x14
,
0x90
,
0x13
,
0x1d
,
0x9a
,
0xc6
,
0xa1
,
0xf7
,
0x92
,
0xd3
,
0x9f
,
0x17
,
0x4e
,
0x6c
,
0xe1
,
0xcf
,
0x61
,
0x18
,
0x5c
,
0xf7
,
0x2e
,
0xfd
,
0x52
,
0x69
,
0x29
,
0x2f
,
0x9c
,
0x6e
,
0xb2
,
0x7f
,
0x06
,
0x00
,
0x00
,
0xff
,
0xff
,
0x90
,
0x22
,
0xb8
,
0x7d
,
0x23
,
0x01
,
0x00
,
0x00
,
}
vendor/github.com/33cn/chain33/system/store/mavl/db/tree.go
View file @
c8eaee6f
...
@@ -14,7 +14,7 @@ import (
...
@@ -14,7 +14,7 @@ import (
"github.com/33cn/chain33/common"
"github.com/33cn/chain33/common"
dbm
"github.com/33cn/chain33/common/db"
dbm
"github.com/33cn/chain33/common/db"
log
"github.com/33cn/chain33/common/log/log15"
log
"github.com/33cn/chain33/common/log/log15"
ty
"github.com/33cn/chain33/system/store/mavl/db/types
"
"github.com/33cn/chain33/system/store/mavl/db/ticket
"
"github.com/33cn/chain33/types"
"github.com/33cn/chain33/types"
farm
"github.com/dgryski/go-farm"
farm
"github.com/dgryski/go-farm"
"github.com/golang/protobuf/proto"
"github.com/golang/protobuf/proto"
...
@@ -570,10 +570,10 @@ func updateGlobalMemTree(node *Node) {
...
@@ -570,10 +570,10 @@ func updateGlobalMemTree(node *Node) {
Size
:
node
.
size
,
Size
:
node
.
size
,
}
}
if
node
.
height
==
0
{
if
node
.
height
==
0
{
if
bytes
.
HasPrefix
(
node
.
key
,
t
y
.
TicketPrefix
)
{
if
bytes
.
HasPrefix
(
node
.
key
,
t
icket
.
TicketPrefix
)
{
t
icket
:=
&
ty
.
Ticket
{}
t
k
:=
&
ticket
.
Ticket
{}
err
:=
proto
.
Unmarshal
(
node
.
value
,
t
icket
)
err
:=
proto
.
Unmarshal
(
node
.
value
,
t
k
)
if
err
==
nil
&&
t
icket
.
Status
==
ty
.
StatusCloseTicket
{
//ticket为close状态下不做存储
if
err
==
nil
&&
t
k
.
Status
==
ticket
.
StatusCloseTicket
{
//ticket为close状态下不做存储
return
return
}
}
}
}
...
@@ -602,10 +602,10 @@ func updateLocalMemTree(t *Tree, node *Node) {
...
@@ -602,10 +602,10 @@ func updateLocalMemTree(t *Tree, node *Node) {
Size
:
node
.
size
,
Size
:
node
.
size
,
}
}
if
node
.
height
==
0
{
if
node
.
height
==
0
{
if
bytes
.
HasPrefix
(
node
.
key
,
t
y
.
TicketPrefix
)
{
if
bytes
.
HasPrefix
(
node
.
key
,
t
icket
.
TicketPrefix
)
{
t
icket
:=
&
ty
.
Ticket
{}
t
k
:=
&
ticket
.
Ticket
{}
err
:=
proto
.
Unmarshal
(
node
.
value
,
t
icket
)
err
:=
proto
.
Unmarshal
(
node
.
value
,
t
k
)
if
err
==
nil
&&
t
icket
.
Status
==
ty
.
StatusCloseTicket
{
//ticket为close状态下不做存储
if
err
==
nil
&&
t
k
.
Status
==
ticket
.
StatusCloseTicket
{
//ticket为close状态下不做存储
return
return
}
}
}
}
...
...
vendor/github.com/33cn/chain33/system/store/mavl/db/types/ticket.pb.go
deleted
100644 → 0
View file @
7c5ce435
This diff is collapsed.
Click to expand it.
vendor/github.com/33cn/chain33/types/cfg.go
View file @
c8eaee6f
...
@@ -111,6 +111,8 @@ type Store struct {
...
@@ -111,6 +111,8 @@ type Store struct {
DbCache
int32
`protobuf:"varint,4,opt,name=dbCache" json:"dbCache,omitempty"`
DbCache
int32
`protobuf:"varint,4,opt,name=dbCache" json:"dbCache,omitempty"`
// 数据库版本
// 数据库版本
LocalDBVersion
string
`protobuf:"bytes,5,opt,name=localdbVersion" json:"localdbVersion,omitempty"`
LocalDBVersion
string
`protobuf:"bytes,5,opt,name=localdbVersion" json:"localdbVersion,omitempty"`
// 数据库版本
StoreDBVersion
string
`protobuf:"bytes,5,opt,name=storedbVersion" json:"storedbVersion,omitempty"`
}
}
// BlockChain 配置
// BlockChain 配置
...
...
vendor/github.com/33cn/chain33/types/proto/transaction.proto
View file @
c8eaee6f
...
@@ -237,7 +237,7 @@ message UserWrite {
...
@@ -237,7 +237,7 @@ message UserWrite {
}
}
message
UpgradeMeta
{
message
UpgradeMeta
{
bool
index
ing
=
1
;
bool
start
ing
=
1
;
string
version
=
2
;
string
version
=
2
;
int64
height
=
3
;
int64
height
=
3
;
}
}
\ No newline at end of file
vendor/github.com/33cn/chain33/types/transaction.pb.go
View file @
c8eaee6f
...
@@ -1954,7 +1954,7 @@ func (m *UserWrite) GetContent() string {
...
@@ -1954,7 +1954,7 @@ func (m *UserWrite) GetContent() string {
}
}
type
UpgradeMeta
struct
{
type
UpgradeMeta
struct
{
Indexing
bool
`protobuf:"varint,1,opt,name=indexing,proto3" json:"index
ing,omitempty"`
Starting
bool
`protobuf:"varint,1,opt,name=starting,proto3" json:"start
ing,omitempty"`
Version
string
`protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
Version
string
`protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
Height
int64
`protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
Height
int64
`protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
...
@@ -1987,9 +1987,9 @@ func (m *UpgradeMeta) XXX_DiscardUnknown() {
...
@@ -1987,9 +1987,9 @@ func (m *UpgradeMeta) XXX_DiscardUnknown() {
var
xxx_messageInfo_UpgradeMeta
proto
.
InternalMessageInfo
var
xxx_messageInfo_UpgradeMeta
proto
.
InternalMessageInfo
func
(
m
*
UpgradeMeta
)
Get
Index
ing
()
bool
{
func
(
m
*
UpgradeMeta
)
Get
Start
ing
()
bool
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Index
ing
return
m
.
Start
ing
}
}
return
false
return
false
}
}
...
@@ -2049,7 +2049,7 @@ func init() {
...
@@ -2049,7 +2049,7 @@ func init() {
func
init
()
{
proto
.
RegisterFile
(
"transaction.proto"
,
fileDescriptor_2cc4e03d2c28c490
)
}
func
init
()
{
proto
.
RegisterFile
(
"transaction.proto"
,
fileDescriptor_2cc4e03d2c28c490
)
}
var
fileDescriptor_2cc4e03d2c28c490
=
[]
byte
{
var
fileDescriptor_2cc4e03d2c28c490
=
[]
byte
{
// 13
19
bytes of a gzipped FileDescriptorProto
// 13
20
bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xc4
,
0x57
,
0xcf
,
0x6e
,
0x1b
,
0xb7
,
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xc4
,
0x57
,
0xcf
,
0x6e
,
0x1b
,
0xb7
,
0x13
,
0x86
,
0xb4
,
0x5a
,
0x59
,
0x1a
,
0x29
,
0xf9
,
0xc5
,
0x8b
,
0x20
,
0x11
,
0x82
,
0x5f
,
0x13
,
0x97
,
0x13
,
0x86
,
0xb4
,
0x5a
,
0x59
,
0x1a
,
0x29
,
0xf9
,
0xc5
,
0x8b
,
0x20
,
0x11
,
0x82
,
0x5f
,
0x13
,
0x97
,
0x48
,
0x81
,
0x20
,
0x08
,
0x64
,
0xc0
,
0xce
,
0xad
,
0x05
,
0xda
,
0x24
,
0x6e
,
0x93
,
0xc0
,
0x49
,
0x9a
,
0x48
,
0x81
,
0x20
,
0x08
,
0x64
,
0xc0
,
0xce
,
0xad
,
0x05
,
0xda
,
0x24
,
0x6e
,
0x93
,
0xc0
,
0x49
,
0x9a
,
...
@@ -2128,9 +2128,9 @@ var fileDescriptor_2cc4e03d2c28c490 = []byte{
...
@@ -2128,9 +2128,9 @@ var fileDescriptor_2cc4e03d2c28c490 = []byte{
0xa9
,
0x1c
,
0xd3
,
0x4b
,
0x2c
,
0x78
,
0x7b
,
0x6c
,
0x7c
,
0xed
,
0xb0
,
0x2f
,
0xa1
,
0xfb
,
0xba
,
0x40
,
0xa9
,
0x1c
,
0xd3
,
0x4b
,
0x2c
,
0x78
,
0x7b
,
0x6c
,
0x7c
,
0xed
,
0xb0
,
0x2f
,
0xa1
,
0xfb
,
0xba
,
0x40
,
0x45
,
0x4f
,
0x37
,
0x32
,
0x91
,
0x8b
,
0x2c
,
0xad
,
0x4c
,
0x0c
,
0x30
,
0x5f
,
0x97
,
0x54
,
0xe6
,
0x1a
,
0x45
,
0x4f
,
0x37
,
0x32
,
0x91
,
0x8b
,
0x2c
,
0xad
,
0x4c
,
0x0c
,
0x30
,
0x5f
,
0x97
,
0x54
,
0xe6
,
0x1a
,
0xdd
,
0x5c
,
0xe8
,
0x72
,
0x0f
,
0xd9
,
0x4f
,
0xd0
,
0x7b
,
0xbd
,
0x98
,
0x28
,
0x31
,
0xc6
,
0xe7
,
0xa8
,
0xdd
,
0x5c
,
0xe8
,
0x72
,
0x0f
,
0xd9
,
0x4f
,
0xd0
,
0x7b
,
0xbd
,
0x98
,
0x28
,
0x31
,
0xc6
,
0xe7
,
0xa8
,
0x85
,
0x29
,
0x
21
,
0x75
,
0x20
,
0xcb
,
0x27
,
0xe4
,
0xa1
,
0xc3
,
0x2b
,
0x6c
,
0x9c
,
0x9c
,
0xa2
,
0x2a
,
0x85
,
0x29
,
0x
61
,
0xa1
,
0x85
,
0xd2
,
0x59
,
0x3e
,
0x21
,
0x0f
,
0x1d
,
0x5e
,
0x61
,
0xe3
,
0xe4
,
0x14
,
0x
fc
,
0x30
,
0xef
,
0x72
,
0x0f
,
0x2f
,
0x1a
,
0xe5
,
0x0f
,
0x6f
,
0xfd
,
0xf8
,
0xd9
,
0x24
,
0xd3
,
0xd3
,
0x
55
,
0xe1
,
0x87
,
0x79
,
0x97
,
0x7b
,
0x78
,
0xd1
,
0x28
,
0x7f
,
0x78
,
0xeb
,
0xc7
,
0xcf
,
0x26
,
0x99
,
0x
e5
,
0xd1
,
0x30
,
0x95
,
0xf3
,
0xdd
,
0xfd
,
0xfd
,
0x34
,
0xdf
,
0x4d
,
0xa7
,
0x22
,
0xcb
,
0xf7
,
0xf7
,
0x
9e
,
0x2e
,
0x8f
,
0x86
,
0xa9
,
0x9c
,
0xef
,
0xee
,
0xef
,
0xa7
,
0xf9
,
0x6e
,
0x3a
,
0x15
,
0x59
,
0xbe
,
0x
77
,
0xa9
,
0x48
,
0x47
,
0x6d
,
0xfa
,
0x17
,
0xb6
,
0xff
,
0x4f
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0x72
,
0x
bf
,
0xbf
,
0x4b
,
0x45
,
0x3a
,
0x6a
,
0xd3
,
0xbf
,
0xb0
,
0xfd
,
0x7f
,
0x02
,
0x00
,
0x00
,
0xff
,
0xff
,
0x
dc
,
0x53
,
0x0e
,
0xaf
,
0x0d
,
0x00
,
0x00
,
0x
ba
,
0x68
,
0x0f
,
0x9b
,
0xaf
,
0x0d
,
0x00
,
0x00
,
}
}
vendor/github.com/33cn/chain33/util/cli/chain33.go
View file @
c8eaee6f
...
@@ -134,6 +134,7 @@ func RunChain33(name string) {
...
@@ -134,6 +134,7 @@ func RunChain33(name string) {
//开始区块链模块加载
//开始区块链模块加载
//channel, rabitmq 等
//channel, rabitmq 等
version
.
SetLocalDBVersion
(
cfg
.
Store
.
LocalDBVersion
)
version
.
SetLocalDBVersion
(
cfg
.
Store
.
LocalDBVersion
)
version
.
SetStoreDBVersion
(
cfg
.
Store
.
StoreDBVersion
)
version
.
SetAppVersion
(
cfg
.
Version
)
version
.
SetAppVersion
(
cfg
.
Version
)
log
.
Info
(
cfg
.
Title
+
"-app:"
+
version
.
GetAppVersion
()
+
" chain33:"
+
version
.
GetVersion
()
+
" localdb:"
+
version
.
GetLocalDBVersion
())
log
.
Info
(
cfg
.
Title
+
"-app:"
+
version
.
GetAppVersion
()
+
" chain33:"
+
version
.
GetVersion
()
+
" localdb:"
+
version
.
GetLocalDBVersion
())
log
.
Info
(
"loading queue"
)
log
.
Info
(
"loading queue"
)
...
@@ -155,12 +156,13 @@ func RunChain33(name string) {
...
@@ -155,12 +156,13 @@ func RunChain33(name string) {
log
.
Info
(
"loading blockchain module"
)
log
.
Info
(
"loading blockchain module"
)
chain
:=
blockchain
.
New
(
cfg
.
BlockChain
)
chain
:=
blockchain
.
New
(
cfg
.
BlockChain
)
chain
.
SetQueueClient
(
q
.
Client
())
chain
.
SetQueueClient
(
q
.
Client
())
chain
.
UpgradeChain
()
log
.
Info
(
"loading store module"
)
log
.
Info
(
"loading store module"
)
s
:=
store
.
New
(
cfg
.
Store
,
sub
.
Store
)
s
:=
store
.
New
(
cfg
.
Store
,
sub
.
Store
)
s
.
SetQueueClient
(
q
.
Client
())
s
.
SetQueueClient
(
q
.
Client
())
chain
.
Upgrade
()
log
.
Info
(
"loading consensus module"
)
log
.
Info
(
"loading consensus module"
)
cs
:=
consensus
.
New
(
cfg
.
Consensus
,
sub
.
Consensus
)
cs
:=
consensus
.
New
(
cfg
.
Consensus
,
sub
.
Consensus
)
cs
.
SetQueueClient
(
q
.
Client
())
cs
.
SetQueueClient
(
q
.
Client
())
...
...
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