Being able to farm rupees by killing baddies or buy them with real world currency ruins the in-game economy right there.
All of the money on the server should be a constant ratio. (# of money per single player) Meaning, for every player there will be a certain amount of money in the game. That means there should be a set amount of money that simple appears (chests, drops, w/e) to the player to keep the ratio the same.
So, say a player will always find a total of 1000 rupees through chests or drops; the player can buy bombs, arrows, hats, etc with that money. The money spent will be stored, and can be earned back by doing some sort of job.
However, for this to be a real economy other people will have to be involved in the economy. So now let's think larger than just one player spending and earning money. A player spends money on an item, and the money is stored globally. Now anyone in the game can earn that money by working.
There is an issue with that scenario, though. People could still amass all of the money by working. To prevent that, introduce two new variables: wages and quantity.
Wages being the amount of money a people can earn in a day.
Quantity being the amount of items in a store.
Then someone purchases an item, the quantity of that item available should decrease, and when that item is sold out more will have to be made. However, there should also be a maximum quantity of a single item to prevent people from quickly obtaining all of their daily wage.
It's still possible to become wealthy but there will always be enough money in the game for everyone.