github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/core/state/interop/write_block_to_disk.go (about) 1 package interop 2 3 import ( 4 "fmt" 5 "os" 6 "path" 7 8 "github.com/prysmaticlabs/prysm/proto/interfaces" 9 "github.com/prysmaticlabs/prysm/shared/featureconfig" 10 "github.com/prysmaticlabs/prysm/shared/fileutil" 11 ) 12 13 // WriteBlockToDisk as a block ssz. Writes to temp directory. Debug! 14 func WriteBlockToDisk(block interfaces.SignedBeaconBlock, failed bool) { 15 if !featureconfig.Get().WriteSSZStateTransitions { 16 return 17 } 18 19 filename := fmt.Sprintf("beacon_block_%d.ssz", block.Block().Slot()) 20 if failed { 21 filename = "failed_" + filename 22 } 23 fp := path.Join(os.TempDir(), filename) 24 log.Warnf("Writing block to disk at %s", fp) 25 enc, err := block.MarshalSSZ() 26 if err != nil { 27 log.WithError(err).Error("Failed to ssz encode block") 28 return 29 } 30 if err := fileutil.WriteFile(fp, enc); err != nil { 31 log.WithError(err).Error("Failed to write to disk") 32 } 33 }