A computer-implemented method for providing a functions-as-a-service (FaaS) platform within a blockchain network, the method being executed by one or more processors, and comprising: receiving, from a smart contract, and by a first function application (312, 412) containing a first function controller (314, 414) executing within the blockchain network, a first function call to execute a first function, the first function call comprising data for execution of the first function, wherein in the first function is implemented by code (316, 318, 320, 416) in the first function application (312, 412), wherein the first function application contains multiple versions of the first function (316, 318, 320) and the first function controller routes the first function call to an appropriate version of the first function (316, 318, 320), and wherein the first function application is stored in the blockchain, the first function controller has a unique address within the blockchain network, and the versions of the first function each have a respective unique address within the blockchain network; transmitting, by the first function controller (314, 414), the data of the first function call to a first function component, the first function component executing the first function based on the data of the first function call; receiving, by the first function controller, a first function result from the first function component; and providing, by the first function controller, the first function result to the smart contract. receiving, from a smart contract, and by a first function application (312, 412) containing a first function controller (314, 414) executing within the blockchain network, a first function call to execute a first function, the first function call comprising data for execution of the first function, wherein in the first function is implemented by code (316, 318, 320, 416) in the first function application (312, 412), wherein the first function application contains multiple versions of the first function (316, 318, 320) and the first function controller routes the first function call to an appropriate version of the first function (316, 318, 320), and wherein the first function application is stored in the blockchain, the first function controller has a unique address within the blockchain network, and the versions of the first function each have a respective unique address within the blockchain network; wherein in the first function is implemented by code (316, 318, 320, 416) in the first function application (312, 412), wherein the first function application contains multiple versions of the first function (316, 318, 320) and the first function controller routes the first function call to an appropriate version of the first function (316, 318, 320), and wherein the first function application is stored in the blockchain, the first function controller has a unique address within the blockchain network, and the versions of the first function each have a respective unique address within the blockchain network; transmitting, by the first function controller (314, 414), the data of the first function call to a first function component, the first function component executing the first function based on the data of the first function call; receiving, by the first function controller, a first function result from the first function component; and providing, by the first function controller, the first function result to the smart contract.