Can forgers choose individually which ChildchainBlocks they want to forge?
They should be able to, just like now they can select which transactions to include.
Let’s say a business creates a sidechain, offers a service, charges users in a native token (would this be an MS currency?) but the business also runs its own forging node. Could this business make its forging node include all childchain transactions from its own childchain? Or does the childchain need consensus among all fNXT to get transactions processed?
The only consensus needed should be that the fee in fNXT received by the block forger (and paid by the ChildchainBlock creator) is at least the minimum required based on the specific transaction types and sizes. When the forger and the creator are the same, we have the same situation as now, that a forger can include his own transactions for free. We may have to adopt the same protection measures, spread back the fees to the previous few forgers.
The business might want to spend money earned via the childchain service to cover costs for its own forging node, even if forging the childchainblocks earns them no fNXT. If consensus among all forging nodes are needed to get transactions processed, could the business itself pay extra rewards to the forgers who forge their (fee-less) ChildchainBlocks? In other words; Charging users for transactions is not the only way to make money. Is there a way for a business to cover transaction costs for their users?
I guess yes, the consensus required is that the forger has received the fee in fNXT. Whether the creator of the child chain block got anything in return, doesn't matter. If such a business is willing to pay fees in fNXT to whomever happens to forge the next block, sufficient to cover the minimum, the actual child chain transactions can be submitted with 0 native token fees.
I was thinking though that the client (the UI) should suggest a fee, in the native token, based on the current market rate as determined by recent trade history for that token vs fNXT. Obviously in this case it will not work, need to do some special case about it.