Added RPC commands: signmessage, verifymessage, listunspent, listaddressgrouping
Wow, a lot of work ! Need to be backported to namecoind too...
For info, last time I tested namecoin-qt, it was displaying the small starting window and then crash (but it compiles :p, debian 7, 64bits).
I'll update and test again.
For info to other people, I've done a quick review of all the code changes in namecoin-qt (about 2000 lines for qt without transalctions + changes to namecoind) up to 2 days ago and didn't see something suspicious.
Tx fees
@khal: You certainly have the most insight on the code and on what is possible/worth the effort and what is not. I like the XYZ size/input/output based tx fee, if I understand correctly today only size is considered?
Yes, size of tx for client and also size of the future block for miners.
The client should come with reasonable default fees as you suggest. Would it be possible to change these via the config file or only via compilation?
Currently, only by compiling it. But it can be added as command line options like in bitcoin.
Does the dust filter have an influence on relaying?
Yes, it is applied after that the free mechanism reduces fees to 0. However, not all miners may use it (old version of namecoind).
Fees on size are applied before the free mechanism, and it hinders me a bit.
If we agree that what is expensive for the network is data storage/signature checks, then, the fees applied on size/txOut should be after applied the free mechanism, like the dust one.
Current steps :
1. fees = size x baseFee
2. fees = 0 if (priority & size < 1k / block < 9k)
3. fees = + dust
I would like something like :
1. fess = baseFee
2. fees = 0 if (priority & size < 1k / block < 9k)
3. fees = size x baseFee
4. fees = + dust
5. fees = + split
I agree the relay base fee should be increased. Not sure about the change of the base tx fee - all in all is that a decrease in fees compared to what we run now?
Splitting is more expensive, dust less (due to reduced threshold) & more (due to 10x the fees), size less (due to reduced fees); standard tx less (due to reduced fees).
Im' not sure about reducing fees too, but we must plan things as if 1NMC = 10 x current value => 10$. Is the current fee value of 0.005 still adapted to this ?
[Edit: I didn't add fees for txIn on my previous post, maybe we could do it too for each txIn above 2, which would increase fees for those tx]
What about something more exotic like deriving the base tx fee / base relay fee from half the average of the lowest tx fee in the last 50 blocks? See
https://bitcointalksearch.org/topic/m.1627011 (also length staggered name_op fees could be based on this!). Ok, it's more work but I like the idea
Indeed, more work...
Free txs
There is no way to force miners to include these, so I would prefer all MY txs to include fees by default. Also I don't see what the problem is to pay a tiny fee once every year.
Tx priority can be helpful should someone try to flood the network with txs so I would keep priority for miners that want to use it but have all txs pay normal fees by default. Hopefully this can simplify things, too.
The easier the fee system the better this works so it would sure be nice if there was a single base fee as khal suggests that can be adjusted.
Ok, so no change in priority/free mechanism for miners, but fees for everybody on the client side ? Keeping this part as it is already is the most simple choice :p
But as I propose to remove free tx for miners if size > 1k... I would like to let the choice for miners to include free tx, but only if txSize < 1k, and apply fees for size in other cases (even if the blockSize is mall).
Name op fees
IMHO it would be best if there were length staggered name op fees that would be network enforced and go to the miners (now or later does not matter). I guess it would be quite an effort, though.
If it is going to miners now, it may be more simple for users (nothing to do). In the other case, that would require to check for each name_tx if the name is expired and if the coins can be selected + force it to go to fees. Or add a name_refund/release rpc command.
Both choices (miner fees or locked funds until expirations) will need some effort.
Output size >! tx fee ?
Enforcing this would help making txs spendable thus reduce chainsize. It would also make name_ops a little more expensive. What is the point of all these dust tx?
What is currently considered as dust are txOut below 0.01NMC, which seems to be quite frequent in the chain (but still > 0.001NMC). Mining ? Gambling ?
I'm for a stacked fee system : each characteristic of a tx can require a
small amount of fees that are added to each other => less way to cheat the system as a "bad" tx will fall in at least one case, while allowing standard tx to remain cheap.