Block header of Tron block number 200 is
{
"blockID": "00000000000000c82a54a3bbdc956e1ddebc903f29b8daf28505b56f55a3f87d",
"block_header": {
"raw_data": {
"number": 200,
"txTrieRoot": "0000000000000000000000000000000000000000000000000000000000000000",
"witness_address": "411661f25387370c9cd3a9a5d97e60ca90f4844e7e",
"parentHash": "00000000000000c7c8f27726916dfddca3c1c3481eb01da8a08938263674cea4",
"timestamp": 1529892138000
},
"witness_signature": "691e9116963b54ef7eb07692266319b029217e4d4ae8e8cb97e341617460f3822eff149c690aac6f2e0ad27d0af4fa8824d113d7a71c091245f778438ca4bde801"
}
}
If you want to verify the signature in Solidity first run the main.go, which serialize block header and finds its raw hash. Then copy the result from the go program and make a call to contract to validate function with parameters hash=raw hash from go program ,signature is the same as witness_signature and witness_address is the same as in block header but without the first two bytes(41) because this is not part of address(it only tells which network). In Remix ide you can call with these parameters: 0x9df34ad7b14739e82a54a3bbdc956e1ddebc903f29b8daf28505b56f55a3f87d, 0x691e9116963b54ef7eb07692266319b029217e4d4ae8e8cb97e341617460f3822eff149c690aac6f2e0ad27d0af4fa8824d113d7a71c091245f778438ca4bde801, 0x1661f25387370c9cd3a9a5d97e60ca90f4844e7e