The below given code is from the a tutorial given here at one of the tutorials on Truffle
// Set the provider for our contract
App.contracts.Adoption.setProvider(App.web3Provider);
I see we set up a Web3 provider for the contract.
What basically are providers? What do they do?