Increasing the size of the value field

khal
Site Admin
Posts: 708
Joined: Mon May 09, 2011 5:09 pm
os: linux

Increasing the size of the value field

Post by khal »

The issue 3 will need an update of all namecoin clients to be fixed.

Due to this bug, a name_update will fail if previous name_update or name_firstupdate used a value with more than 520 characters. Yes, you read it right...

So, I think we should "benefit" from this forced upgrade to increase the maximum number of characters for the value field, because we already need a general upgrade.

Why ?
Some possible namecoin usages are already limited by this, like GPG. See https://dot-bit.org/Personal_Namespace#Notes.
Other

Is it dangerous for the network ?
Each transaction above 1K will always have fee, for each 1K of data. If fees are set to the right value, they will do their job.
Each transaction above 10K will be rejected (another network rules).

How many characters ?
I propose to set it to 9000 characters max to allow 8k gpg keys with some other data.

What do you think ?

Should we adjust default fees ?
Defaults fees are now at 0.005NMC. Are they still right with merged mining and name costing 0.01NMC ?
NamecoinID: id/khal
GPG : 9CC5B92E965D69A9
NMC: N1KHAL5C1CRzy58NdJwp1tbLze3XrkFxx9
BTC: 1KHAL8bUjnkMRMg9yd2dNrYnJgZGH8Nj6T

Register Namecoin domains with BTC
My bitcoin Identity - Send messages to bitcoin users
Charity Ad - Make a good deed without paying a cent

phelix
Posts: 1634
Joined: Thu Aug 18, 2011 6:59 am

Re: Increasing the size of the value field

Post by phelix »

khal wrote:The issue 3 will need an update of all namecoin clients to be fixed.

Due to this bug, a name_update will fail if previous name_update or name_firstupdate used a value with more than 520 characters. Yes, you read it right...

So, I think we should "benefit" from this forced upgrade to increase the maximum number of characters for the value field, because we already need a general upgrade.

Why ?
Some possible namecoin usages are already limited by this, like GPG. See https://dot-bit.org/Personal_Namespace#Notes.
Other

Is it dangerous for the network ?
Each transaction above 1K will always have fee, for each 1K of data. If fees are set to the right value, they will do their job.
Each transaction above 10K will be rejected.

How many characters ?
I propose to set it to 9000 characters max to allow 8k gpg keys with some other data.

What do you think ?

Should we adjust default fees ?
Defaults fees are now at 0.005NMC. Are they still right with merged mining and name costing 0.01NMC ?
also transactions below 1k should have a fee by default.

spamwise this change would not make a difference because a spammer could either create large or even more small transactions? So 9000 sounds fine.

Bitparking & MtGox: 0.0393 USD/NMC

Both fees should be higher by at least a factor of 10 imho
nx.bit - some namecoin stats
nf.bit - shortcut to this forum

khal
Site Admin
Posts: 708
Joined: Mon May 09, 2011 5:09 pm
os: linux

Re: Increasing the size of the value field

Post by khal »

phelix wrote:also transactions below 1k should have a fee by default.
So, no free transactions anymore ? That's a "radical" change in the bitcoin philosophy : free if possible. What is your reason behind ? Simplify anti-spam a bit ? Namecoin was not designed to be mainly used as a currency, so we don't need to favorise free tx ? Or do you mean "should have a fee by default" but can be fee free (like that, tx from most people have higher priority) ?

phelix wrote:spamwise this change would not make a difference because a spammer could either create large or even more small transactions? So 9000 sounds fine.

Bitparking & MtGox: 0.0393 USD/NMC

Both fees should be higher by at least a factor of 10 imho
At the beginning of namecoin, a main question was "how many names at the end ?". The answer was 22 millions divided by a name_new price (so 2,2 billions).
22 millions of names should be enough for a long time, so a name_new could cost 1NMC and it would still be a more than reasonable price (0.0393 USD). If namecoins value increases a lot, there still a giant step before it become expensive. When we'll arrive at this point (in several years), we will need to adjust price again and make a full network update, and same later, etc.

Is this really useful/needed ?
Maybe leaving this as it is wouldn't change a lot of thing.

Note : after a name has expired, i guess you should be able to spend the previously used 0.01NMC of the name_new.

Standard fees are designed to be floating, adjusted by miners to decide if tx are included or not (or prior to another tx). But, namecoin currently costs 600M of hard drive and some cpu to miners. Will they really adjust fees for that ? (we have seen they don't). Also, fees exist to replace coin generation later and limit spam with some dedicated rules.

With 0.20NMC = 0,00786USD :
- A 5k tx would cost 1NMC, a 9k tx ~2NMC.

With 0.10NMC = 0,00393USD :
- A 5k tx would cost 0.50NMC, a 9k tx ~1NMC.

With 0.01NMC = 0,00393USD :
- A 5k tx would cost 0.05NMC, a 9k tx ~0.10NMC.

But, with a minimum fee of 0.10NMC, it means it would not be interesting to exchange small amounts of NMC, if free tx are forbidden. And, miners get small amounts of namecoins, people buy names with small amounts, etc.

I'll read later our previous discussion about that to have cleaner view about this :p
NamecoinID: id/khal
GPG : 9CC5B92E965D69A9
NMC: N1KHAL5C1CRzy58NdJwp1tbLze3XrkFxx9
BTC: 1KHAL8bUjnkMRMg9yd2dNrYnJgZGH8Nj6T

Register Namecoin domains with BTC
My bitcoin Identity - Send messages to bitcoin users
Charity Ad - Make a good deed without paying a cent

phelix
Posts: 1634
Joined: Thu Aug 18, 2011 6:59 am

Re: Increasing the size of the value field

Post by phelix »

khal wrote:
phelix wrote:also transactions below 1k should have a fee by default.
So, no free transactions anymore ? That's a "radical" change in the bitcoin philosophy : free if possible. What is your reason behind ? Simplify anti-spam a bit ? Namecoin was not designed to be mainly used as a currency, so we don't need to favorise free tx ? Or do you mean "should have a fee by default" but can be fee free (like that, tx from most people have higher priority) ?
by default the client should pay a small fee for all transactions, even small ones. that would give miners room to skip/delay free transactions.

enforcing it? hmmm...

the bitcoin blockchain size gives me some concerns already
phelix wrote:spamwise this change would not make a difference because a spammer could either create large or even more small transactions? So 9000 sounds fine.

Bitparking & MtGox: 0.0393 USD/NMC

Both fees should be higher by at least a factor of 10 imho
At the beginning of namecoin, a main question was "how many names at the end ?". The answer was 22 millions divided by a name_new price (so 2,2 billions).
22 millions of names should be enough for a long time, so a name_new could cost 1NMC and it would still be a more than reasonable price (0.0393 USD). If namecoins value increases a lot, there still a giant step before it become expensive. When we'll arrive at this point (in several years), we will need to adjust price again and make a full network update, and same later, etc.

Is this really useful/needed ?
Maybe leaving this as it is wouldn't change a lot of thing.
I am not decided either, we need the opinion of more people on this issue.
Note : after a name has expired, i guess you should be able to spend the previously used 0.01NMC of the name_new.
That is a very good idea. So the network fee will only be locked until the domain expires.
Standard fees are designed to be floating, adjusted by miners to decide if tx are included or not (or prior to another tx). But, namecoin currently costs 600M of hard drive and some cpu to miners. Will they really adjust fees for that ? (we have seen they don't). Also, fees exist to replace coin generation later and limit spam with some dedicated rules.

With 0.20NMC = 0,00786USD :
- A 5k tx would cost 1NMC, a 9k tx ~2NMC.

With 0.10NMC = 0,00393USD :
- A 5k tx would cost 0.50NMC, a 9k tx ~1NMC.

With 0.01NMC = 0,00393USD :
- A 5k tx would cost 0.05NMC, a 9k tx ~0.10NMC.

But, with a minimum fee of 0.10NMC, it means it would not be interesting to exchange small amounts of NMC, if free tx are forbidden. And, miners get small amounts of namecoins, people buy names with small amounts, etc.

I'll read later our previous discussion about that to have cleaner view about this :p
I have to do that, too :)
nx.bit - some namecoin stats
nf.bit - shortcut to this forum

khal
Site Admin
Posts: 708
Joined: Mon May 09, 2011 5:09 pm
os: linux

Re: Increasing the size of the value field

Post by khal »

phelix wrote:by default the client should pay a small fee for all transactions, even small ones. that would give miners room to skip/delay free transactions.
Here is the formula to know if a tx can be without fee or not (see https://en.bitcoin.it/wiki/Transaction_fees) :

Code: Select all

priority = sum(input_value_in_base_units * input_age)/size_in_bytes
If priority > COIN * 144 / 250 [57600000] => can be free
Note : COIN is 1NMC * 100'000'000

So, to be without tx fees, a name_update of 460 bytes (a small one) with 0.01NMC (1000000) must wait :
=> 57600000 / 1000000 * 460 = 26496 blocks

A big one (1000 bytes, with 547 characters in the field value) :
=> 57600000 / 1000000 * 1000 = 57600 blocks

Limit value (625 bytes, with 172 characters in the field value) :
=> 57600000 / 1000000 * 625 = 36000 blocks

But, a tx can contain other inputs with the 0.01NMC (it seems to be the case most of the time).
If you change the coin selection algo to send more NMC (a tx contains one or more inputs, and 1 output of 0.01NMC for the name_update + the remaining sent to yourself), for example, say 100,01NMC :
=> 57600000 / 10001000000 * 460 = 3 blocks
=> 57600000 / 10001000000 * 1000 = 6 blocks
The current priority algo promotes tx with big amounts (same as bitcoin's algo).
Should we calculate the priority based on the smallest input only (instead of adding all inputs*age) ?

Code: Select all

priority = smallest(input_value_in_base_units) * input_age / size_in_bytes
If you need to pay 50.05NMC and have 50NMC and 0.05NMC, the 0.05NMC will be used to calculate the priority.
If you need to pay 50.05NMC and have 50NMC and 10NMC, the 10NMC will be used to calculate the priority.
NamecoinID: id/khal
GPG : 9CC5B92E965D69A9
NMC: N1KHAL5C1CRzy58NdJwp1tbLze3XrkFxx9
BTC: 1KHAL8bUjnkMRMg9yd2dNrYnJgZGH8Nj6T

Register Namecoin domains with BTC
My bitcoin Identity - Send messages to bitcoin users
Charity Ad - Make a good deed without paying a cent

phelix
Posts: 1634
Joined: Thu Aug 18, 2011 6:59 am

Re: Increasing the size of the value field

Post by phelix »

i never underatood why this would have to be so complicated with bitcoin.i would suggest a base fee per tx and an additional fee based on the size. plain and simple but matches network burden.
nx.bit - some namecoin stats
nf.bit - shortcut to this forum

khal
Site Admin
Posts: 708
Joined: Mon May 09, 2011 5:09 pm
os: linux

Re: Increasing the size of the value field

Post by khal »

phelix wrote:i never underatood why this would have to be so complicated with bitcoin.i would suggest a base fee per tx and an additional fee based on the size. plain and simple but matches network burden.
All this is to allow free transactions (or not), without permitting the network to be flooded.
But, otherwise, it is a base tx + additionnal fees based on tx size.
NamecoinID: id/khal
GPG : 9CC5B92E965D69A9
NMC: N1KHAL5C1CRzy58NdJwp1tbLze3XrkFxx9
BTC: 1KHAL8bUjnkMRMg9yd2dNrYnJgZGH8Nj6T

Register Namecoin domains with BTC
My bitcoin Identity - Send messages to bitcoin users
Charity Ad - Make a good deed without paying a cent

khal
Site Admin
Posts: 708
Joined: Mon May 09, 2011 5:09 pm
os: linux

Re: Increasing the size of the value field

Post by khal »

I made a small modification to the domainCost tool to allow one to force a namecoin price and see matching bitcoin and usd prices.
That way, we could more easily see the impact of proposed changes :
- http://dot-bit.org/tools/domainCost.php?cost=10

Things we must remember :
- merged mining has changed the nmc value a lot, that's why price need to be adjusted
- names usages has now more impact on namecoin price
- the new price must be still adapted in several years.

Code: Select all

Price 	Unit 	Change
0.50 	NMC 	-
0.0024 	BTC 	0.0048 BTC/NMC
0.0180 	USD 	7.5300 USD/BTC

Code: Select all

Price 	Unit 	Change
0.10 	NMC 	-
0.0005 	BTC 	0.0048 BTC/NMC
0.0036 	USD 	7.5300 USD/BTC
* Names fees : 0.5NMC
- paid once at registration
- funds are locked until name expire (must be tested, but I don't remember of I thing that forbid it)
- only names are concerned
-> limit number of names per user
-> limit total number of names
=> Proposed to 0.5NMC
=> Max 6.5M names (today : 67k names)
I would choose 0.5NMC to have maximum of names 100 times bigger than now (1NMC is 50x current usage, maybe enough ?).

* Transaction fees : 0.1NMC
- paid each tx, sent to miners
- both tx and names are concerned
-> limit spam on the network
-> will replace coinbase in the future
-> are re-injected in the network by miners
=> Proposed to 0.1NMC (per KB, free tx still possible)
9M names are required (25NMC x 36k blocks / tx fees) to fully support same income of 50NMC per blocks for miners.
With 6.5M names, future income will be 25NMC + 6.5M names x tx fees / 36k blocks = 43NMC. And that's without counting fees on other tx.

Things have been sleeping for too long, we must take a decision soon.
NamecoinID: id/khal
GPG : 9CC5B92E965D69A9
NMC: N1KHAL5C1CRzy58NdJwp1tbLze3XrkFxx9
BTC: 1KHAL8bUjnkMRMg9yd2dNrYnJgZGH8Nj6T

Register Namecoin domains with BTC
My bitcoin Identity - Send messages to bitcoin users
Charity Ad - Make a good deed without paying a cent

phelix
Posts: 1634
Joined: Thu Aug 18, 2011 6:59 am

Re: Increasing the size of the value field

Post by phelix »

what about the name_update fee?
nx.bit - some namecoin stats
nf.bit - shortcut to this forum

khal
Site Admin
Posts: 708
Joined: Mon May 09, 2011 5:09 pm
os: linux

Re: Increasing the size of the value field

Post by khal »

phelix wrote:what about the name_update fee?
- If we decide to add a name fee (like name_new) on name_update, it means the network will need to check for the previous tx and add, say 0.5NMC, to the last name fee value (the original 0.01NMC is currently spent from your old name record to your new name record each time you do a name_update).
If you do a lot of update, you name will "store" a lot of coins released when it expires, or transfered to another people if you transfer the name because an update and a transfer are the same thing (and he can touch the jackpot when it expires :p)

- If we decide to force standard tx fee on name_update, we can do that by don't allowing free tx fees.
It could easily be added in CNamecoinHooks::ConnectInputs : tx.GetMinFee(nBlockSize, fAllowFree=false) for the network and in the name_update rpc command.
So, minimum fee for name_update would be 0.10NMC (with my previous proposal) for a small record (<1k) and 0.90NMC for a big one.
To compare :
- name_new : 0.50NMC
- name_firstupdate : 0NMC to 0.90NMC + the lost 0.01NMC (will be 0NMC around block 86k ~ 140 days).
- name_update : 0.10NMC to 0.90NMC

In this case, why not forcing tx fees for name_firstupdate (and name_new?) too ?
NamecoinID: id/khal
GPG : 9CC5B92E965D69A9
NMC: N1KHAL5C1CRzy58NdJwp1tbLze3XrkFxx9
BTC: 1KHAL8bUjnkMRMg9yd2dNrYnJgZGH8Nj6T

Register Namecoin domains with BTC
My bitcoin Identity - Send messages to bitcoin users
Charity Ad - Make a good deed without paying a cent

Post Reply