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 }