  In order to have transactions executed and recorded on blockchains such as
the Ethereum Mainnet, fees expressed in crypto-currency units of the blockchain
must be paid. One can buy crypto-currency called Ether of the Ethereum
blockchain from exchanges and pay for the transaction fees. In the case of test
networks (such as Rinkeby) or scientific research blockchains (such as
Bloxberg), free crypto-currency, Ether, is distributed to users via faucets.
Since transaction slots on the blocks, storage and smart contract executions
are consuming blockchain resources, Ethers are distributed by fixed small
amounts to users. Users may have different amount of Ether requirements; some
small amounts and some large amounts during different times. As a result,
rather than allowing the user to get a fixed small amount of Ether, a more
general distribution mechanism that allows a user to demand and claim arbitrary
amounts of Ether, while satisfying fairness among users, is needed. For this
end, Max-min Fairness based schemes have been used in centralized settings. Our
work contributes a Max-min Fairness based algorithm and its Solidity smart
contract implementation that requires low transaction costs independent of the
number of users. This is important on the Ethereum blockchain, since a smart
contract execution with transaction costs depending on the number of users
would mean block gas limit exhaustion problem will eventually be met, making
the smart contract ineffective. We report tests which confirm that the low
transaction cost aims have been achieved by our algorithm.
