Implement Renew RPC and add renew logic
RPCRenew
is a new host RPC that allows a renter to renew a contract without reuploading. The renter now makes use of this RPC to renew files that are within 2000 blocks of expiring.
The negotiateContract
functions for both the host and renter have been refactored so that they can be used for renewing as well as the initial negotiation process. It's not a perfect fit, but it saves a lot of duplicated code. This may not be possible if the RPCRenew
protocol is changed in the future.