Revert "revert: shared genesis db (#6594)"

This reverts commit 9e452fe8
This commit is contained in:
alex.sharov 2023-01-24 13:04:02 +07:00
parent bad616cb8e
commit be3e118cf5

View File

@ -26,6 +26,7 @@ import (
"errors"
"fmt"
"math/big"
"os"
"sync"
"github.com/c2h5oh/datasize"
@ -93,6 +94,14 @@ type AuthorityRoundSeal struct {
Signature libcommon.Hash `json:"signature"`
}
var genesisTmpDB kv.RwDB
var genesisDBLock *sync.Mutex
func init() {
genesisTmpDB = mdbx.NewMDBX(log.New()).InMem(os.TempDir()).MapSize(2 * datasize.GB).PageSize(2 * 4096).MustOpen()
genesisDBLock = &sync.Mutex{}
}
func (ga *GenesisAlloc) UnmarshalJSON(data []byte) error {
m := make(map[common.UnprefixedAddress]GenesisAccount)
if err := json.Unmarshal(data, &m); err != nil {
@ -373,9 +382,9 @@ func (g *Genesis) ToBlock() (*types.Block, *state.IntraBlockState, error) {
go func() { // we may run inside write tx, can't open 2nd write tx in same goroutine
// TODO(yperbasis): use memdb.MemoryMutation instead
defer wg.Done()
tmpDB := mdbx.NewMDBX(log.New()).InMem("").MapSize(2 * datasize.GB).MustOpen()
defer tmpDB.Close()
tx, err := tmpDB.BeginRw(context.Background())
genesisDBLock.Lock()
defer genesisDBLock.Unlock()
tx, err := genesisTmpDB.BeginRw(context.Background())
if err != nil {
panic(err)
}