A system of decentralized machine learning via a plurality of iterations of training, the system comprising: at least a first physical computing node of a blockchain network comprising a plurality of physical computing nodes, characterised in that the first physical computing node is programmed to: enroll with the blockchain network to participate in a first iteration of training a machine-learned model at a first time; participate in a consensus decision to enroll a second physical computing node of the blockchain network to participate in the first iteration, wherein the consensus decision applies only to the first iteration and does not register the second physical computing node to participate in subsequent iterations; obtain a local training dataset accessible locally at the first physical computing node, but not accessible at other ones of the plurality of physical computing nodes; train a first local model based on the local training dataset during the first iteration; obtain at least a first training parameter based on the first local model; generate a blockchain transaction comprising an indication that the first physical computing node is ready to share the first training parameter; transmit the first training parameter to a master node, selected from among a set of physical computing nodes participating in the first iteration, that generates a new transaction to be added as a ledger block to each copy of the distributed ledger based on the indication that the first physical computing node is ready to share the first training parameter; obtain, from the blockchain network, one or more final training parameters that were generated by the master node based on the first training parameter and at least a second training parameter generated at, and shared from, the second physical computing node; and apply the one or more final training parameters to the first local model; the system further comprising the master node, wherein the master node is programmed to: obtain at least the first training parameter and the second training parameter; generate the one or more final training parameters based on the first training parameter and the second training parameter; generate a transaction that includes an indication that the master node has generated the one or more final training parameters; cause the transaction to be written as a block on the distributed ledger; release its status as a master, which permits entry into a second iteration of model building with a different master node; and make the one or more final training parameters available to the plurality of physical computing nodes. enroll with the blockchain network to participate in a first iteration of training a machine-learned model at a first time; participate in a consensus decision to enroll a second physical computing node of the blockchain network to participate in the first iteration, wherein the consensus decision applies only to the first iteration and does not register the second physical computing node to participate in subsequent iterations; obtain a local training dataset accessible locally at the first physical computing node, but not accessible at other ones of the plurality of physical computing nodes; train a first local model based on the local training dataset during the first iteration; obtain at least a first training parameter based on the first local model; generate a blockchain transaction comprising an indication that the first physical computing node is ready to share the first training parameter; transmit the first training parameter to a master node, selected from among a set of physical computing nodes participating in the first iteration, that generates a new transaction to be added as a ledger block to each copy of the distributed ledger based on the indication that the first physical computing node is ready to share the first training parameter; obtain, from the blockchain network, one or more final training parameters that were generated by the master node based on the first training parameter and at least a second training parameter generated at, and shared from, the second physical computing node; and apply the one or more final training parameters to the first local model; obtain at least the first training parameter and the second training parameter; generate the one or more final training parameters based on the first training parameter and the second training parameter; generate a transaction that includes an indication that the master node has generated the one or more final training parameters; cause the transaction to be written as a block on the distributed ledger; release its status as a master, which permits entry into a second iteration of model building with a different master node; and make the one or more final training parameters available to the plurality of physical computing nodes.