github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/core/state/interop/write_state_to_disk.go (about)

     1  package interop
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"path"
     7  
     8  	iface "github.com/prysmaticlabs/prysm/beacon-chain/state/interface"
     9  	"github.com/prysmaticlabs/prysm/shared/featureconfig"
    10  	"github.com/prysmaticlabs/prysm/shared/fileutil"
    11  )
    12  
    13  // WriteStateToDisk as a state ssz. Writes to temp directory. Debug!
    14  func WriteStateToDisk(state iface.ReadOnlyBeaconState) {
    15  	if !featureconfig.Get().WriteSSZStateTransitions {
    16  		return
    17  	}
    18  	fp := path.Join(os.TempDir(), fmt.Sprintf("beacon_state_%d.ssz", state.Slot()))
    19  	log.Warnf("Writing state to disk at %s", fp)
    20  	enc, err := state.MarshalSSZ()
    21  	if err != nil {
    22  		log.WithError(err).Error("Failed to ssz encode state")
    23  		return
    24  	}
    25  	if err := fileutil.WriteFile(fp, enc); err != nil {
    26  		log.WithError(err).Error("Failed to write to disk")
    27  	}
    28  }