reportBlock logs a bad block error.
(block *types.Block, receipts types.Receipts, err error)
| 1796 | |
| 1797 | // reportBlock logs a bad block error. |
| 1798 | func (bc *BlockChain) reportBlock(block *types.Block, receipts types.Receipts, err error) { |
| 1799 | bc.addBadBlock(block) |
| 1800 | |
| 1801 | var receiptString string |
| 1802 | for _, receipt := range receipts { |
| 1803 | receiptString += fmt.Sprintf("\t%v\n", receipt) |
| 1804 | } |
| 1805 | log.Error(fmt.Sprintf(` |
| 1806 | ########## BAD BLOCK ######### |
| 1807 | Chain config: %v |
| 1808 | |
| 1809 | Number: %v |
| 1810 | Hash: 0x%x |
| 1811 | %v |
| 1812 | |
| 1813 | Error: %v |
| 1814 | ############################## |
| 1815 | `, bc.chainConfig, block.Number(), block.Hash(), receiptString, err)) |
| 1816 | } |
| 1817 | |
| 1818 | // InsertHeaderChain attempts to insert the given header chain in to the local |
| 1819 | // chain, possibly creating a reorg. If an error is returned, it will return the |