This is bad concept design, because your components will be tightly coupled. Instead, you can pass reference to Main node to your block.gd when you instance this node, for example:
# block.gd
var main
# main.gd
var block = Block.instance()
block.main = self
so instead of get_tree().get_parent() you will simply write main.