mining theory – How to call `getblocktemplate` without running a full node?
To create a valid bitcoin block, you will need a view of the current network state. Otherwise how will you know what the previous valid block was, or what transactions are valid and worthy of being included?
To get a view of the current network state, you will need to run a full node. The full node software will run through the history of the network, validating each and every block and transaction, right up to the most recent block. Only once the node is fully synced will it be capable of discerning the current network state (and thus, be capable of creating valid block templates for you)
Otherwise, you will be trusting someone else to create block templates for you, and they could easily create invalid templates, which would never be accepted as a block on the bitcoin network. You would be unable to verify the templates yourself, since you would be unaware of the network state.
So really, if you want to create block templates, you will need to run a full node.