Pre-sealing holes

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
This commit is contained in:
Jakub Sztandera 2019-12-06 18:53:33 +01:00
parent 8780faf07a
commit 80592a87cf
No known key found for this signature in database
GPG Key ID: 9A9AF56F8B3879BA
4 changed files with 33 additions and 21 deletions

View File

@ -132,7 +132,7 @@ func NewGenerator() (*ChainGen, error) {
return nil, err return nil, err
} }
genm1, err := seed.PreSeal(maddr1, 1024, 1, m1temp, []byte("some randomness")) genm1, err := seed.PreSeal(maddr1, 1024, 0, 1, m1temp, []byte("some randomness"))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -147,7 +147,7 @@ func NewGenerator() (*ChainGen, error) {
return nil, err return nil, err
} }
genm2, err := seed.PreSeal(maddr2, 1024, 1, m2temp, []byte("some randomness")) genm2, err := seed.PreSeal(maddr2, 1024, 0, 1, m2temp, []byte("some randomness"))
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -66,6 +66,11 @@ var preSealCmd = &cli.Command{
Value: 1, Value: 1,
Usage: "select number of sectors to pre-seal", Usage: "select number of sectors to pre-seal",
}, },
&cli.IntFlag{
Name: "sector-offset",
Value: 0,
Usage: "select number of sectors to pre-seal",
},
}, },
Action: func(c *cli.Context) error { Action: func(c *cli.Context) error {
sdir := c.String("sectorbuilder-dir") sdir := c.String("sectorbuilder-dir")
@ -79,7 +84,7 @@ var preSealCmd = &cli.Command{
return err return err
} }
gm, err := seed.PreSeal(maddr, c.Uint64("sector-size"), c.Int("num-sectors"), sbroot, []byte(c.String("ticket-preimage"))) gm, err := seed.PreSeal(maddr, c.Uint64("sector-size"), c.Uint64("sector-offset"), c.Int("num-sectors"), sbroot, []byte(c.String("ticket-preimage")))
if err != nil { if err != nil {
return err return err
} }

View File

@ -26,15 +26,16 @@ import (
var log = logging.Logger("preseal") var log = logging.Logger("preseal")
func PreSeal(maddr address.Address, ssize uint64, sectors int, sbroot string, preimage []byte) (*genesis.GenesisMiner, error) { func PreSeal(maddr address.Address, ssize uint64, offset uint64, sectors int, sbroot string, preimage []byte) (*genesis.GenesisMiner, error) {
cfg := &sectorbuilder.Config{ cfg := &sectorbuilder.Config{
Miner: maddr, Miner: maddr,
SectorSize: ssize, SectorSize: ssize,
CacheDir: filepath.Join(sbroot, "cache"), OverrideLastID: offset,
SealedDir: filepath.Join(sbroot, "sealed"), CacheDir: filepath.Join(sbroot, "cache"),
StagedDir: filepath.Join(sbroot, "staging"), SealedDir: filepath.Join(sbroot, "sealed"),
UnsealedDir: filepath.Join(sbroot, "unsealed"), StagedDir: filepath.Join(sbroot, "staging"),
WorkerThreads: 2, UnsealedDir: filepath.Join(sbroot, "unsealed"),
WorkerThreads: 2,
} }
for _, d := range []string{cfg.CacheDir, cfg.SealedDir, cfg.StagedDir, cfg.UnsealedDir} { for _, d := range []string{cfg.CacheDir, cfg.SealedDir, cfg.StagedDir, cfg.UnsealedDir} {

View File

@ -119,12 +119,14 @@ type Config struct {
SectorSize uint64 SectorSize uint64
Miner address.Address Miner address.Address
WorkerThreads uint8 WorkerThreads uint8
OverrideLastID uint64
CacheDir string CacheDir string
SealedDir string SealedDir string
StagedDir string StagedDir string
UnsealedDir string UnsealedDir string
_ struct{} // guard against nameless init
} }
func New(cfg *Config, ds dtypes.MetadataDS) (*SectorBuilder, error) { func New(cfg *Config, ds dtypes.MetadataDS) (*SectorBuilder, error) {
@ -142,17 +144,21 @@ func New(cfg *Config, ds dtypes.MetadataDS) (*SectorBuilder, error) {
} }
var lastUsedID uint64 var lastUsedID uint64
b, err := ds.Get(lastSectorIdKey) if cfg.OverrideLastID != 0 {
switch err { lastUsedID = cfg.OverrideLastID
case nil: } else {
i, err := strconv.ParseInt(string(b), 10, 64) b, err := ds.Get(lastSectorIdKey)
if err != nil { switch err {
case nil:
i, err := strconv.ParseInt(string(b), 10, 64)
if err != nil {
return nil, err
}
lastUsedID = uint64(i)
case datastore.ErrNotFound:
default:
return nil, err return nil, err
} }
lastUsedID = uint64(i)
case datastore.ErrNotFound:
default:
return nil, err
} }
rlimit := cfg.WorkerThreads - PoStReservedWorkers rlimit := cfg.WorkerThreads - PoStReservedWorkers