A computer-implemented method for implementing a blockchain-based workflow, the computer-implemented method comprising: receiving a workflow specification, wherein the workflow specification defines a plurality of states of a workflow between which the workflow can transition and indicates one or more state transition methods to be performed by a smart contract on a blockchain network and one or more client service methods to be executed by one or more client devices off the blockchain network participating in the workflow; generating, according to the workflow specification, the smart contract to be executed on the blockchain network, wherein the smart contract comprises the one or more state transition methods, a current state representing a current state of the workflow and an event indicating a change of the current state of the smart contract, wherein the smart contract stores the current state and the event into a log file on the blockchain network, and wherein the change of the current state of the smart contract and the event recorded in the blockchain network automatically triggers at least one of the one or more client service methods to be executed off the blockchain network; generating, according to the workflow specification and for each client device of the one or more client devices, a configurable client service logic, the configurable client service logic to be executed by the one or more client devices off the blockchain network, the configurable client service logic comprising the one or more client service methods, wherein at least one client service method of the one or more client service methods is configured to change the current state in the smart contract, wherein the at least one of the one or more client service methods defines a triggering state, a triggering event, and a target state, wherein the at least one of the one or more client service methods is configured to generate the target state in response to determining that the current state of the smart contract matches the triggering state and that the event of the smart contract matches the triggering event, wherein the generation of the target state results in a contract call to the smart contract to execute a state transition method of the one or more state transition methods to change the current state of the smart contract to the target state; and deploying the smart contract to the blockchain network; wherein the smart contract further comprises one or more roles, wherein the one or more roles provide access control to the one or more state transition methods such that a blockchain account associated with one of the one or more roles is permitted to access one or more of the one or more states transition methods. receiving a workflow specification, wherein the workflow specification defines a plurality of states of a workflow between which the workflow can transition and indicates one or more state transition methods to be performed by a smart contract on a blockchain network and one or more client service methods to be executed by one or more client devices off the blockchain network participating in the workflow; generating, according to the workflow specification, the smart contract to be executed on the blockchain network, wherein the smart contract comprises the one or more state transition methods, a current state representing a current state of the workflow and an event indicating a change of the current state of the smart contract, wherein the smart contract stores the current state and the event into a log file on the blockchain network, and wherein the change of the current state of the smart contract and the event recorded in the blockchain network automatically triggers at least one of the one or more client service methods to be executed off the blockchain network; generating, according to the workflow specification and for each client device of the one or more client devices, a configurable client service logic, the configurable client service logic to be executed by the one or more client devices off the blockchain network, the configurable client service logic comprising the one or more client service methods, wherein at least one client service method of the one or more client service methods is configured to change the current state in the smart contract, wherein the at least one of the one or more client service methods defines a triggering state, a triggering event, and a target state, wherein the at least one of the one or more client service methods is configured to generate the target state in response to determining that the current state of the smart contract matches the triggering state and that the event of the smart contract matches the triggering event, wherein the generation of the target state results in a contract call to the smart contract to execute a state transition method of the one or more state transition methods to change the current state of the smart contract to the target state; and deploying the smart contract to the blockchain network; wherein the smart contract further comprises one or more roles, wherein the one or more roles provide access control to the one or more state transition methods such that a blockchain account associated with one of the one or more roles is permitted to access one or more of the one or more states transition methods.