  Current blockchain approaches for business contracts are based on smart
contracts, namely, software programs placed on a blockchain that are
automatically executed to realize a contract. However, smart contracts lack
flexibility and interfere with the autonomy of the parties concerned.
  We propose Hercule, an approach for declaratively specifying blockchain
applications in a manner that reflects business contracts. Hercule represents a
contract via regulatory norms that capture the involved parties' expectations
of one another. It computes the states of norms (hence, of contracts) from
events in the blockchain. Hercule's novelty and significance lie in that it
operationalizes declarative contracts over semistructured databases, the
underlying representation for practical blockchain such as Hyperledger Fabric
and Ethereum. Specifically, it exploits the map-reduce capabilities of such
stores to compute norm states.
  We demonstrate that our implementation over Hyperledger Fabric can process
thousands of events per second, sufficient for many applications.
