New currencies details


#1

Here are some details that need to be decided before the new currencies proposal can be implemented.

Units

First the new currency units. We currently have ‘S’ for NuShares and ‘B’ for US-NBT (formerly NuBit). I suggest we use the obvious ‘C’ for CN-NBT, ‘E’ for EU-NBT and ‘X’ for X-NBT.

Address versions

Then there are the version numbers that determine the first letter of the addresses. We need 6 versions for each currency: public keys, scripts (multisig addresses for example), and private keys, for the main network and for testnet.

Main network

Current versions on the main network:

NuShares:

  • pubkey: 63, S
  • script: 64, S or T
  • privkey: 149, N or P

US-NBT:

  • pubkey: 25, B
  • script: 26, B
  • privkey: 150, P

Proposal for new currencies:

CN-NBT:

  • pubkey: 28, C
  • script: 29, C or D
  • privkey: 151, P

EU-NBT:

  • pubkey: 33, E
  • script: 34, E or F
  • privkey: 152, P

X-NBT:

  • pubkey: 75, X
  • script: 76, X
  • privkey: 153, P

Testnet

NuShares:

  • pubkey: 125, s
  • script: 126, s or t
  • privkey: 223, Z

US-NBT:

  • pubkey: 85, b
  • script: 86, b or c
  • privkey: 224, a

CN-NBT:

  • pubkey: 87, c
  • script: 88, c
  • privkey: 225, a

EU-NBT:

  • pubkey: 92, e
  • script: 93, e
  • privkey: 226, a

X-NBT:

  • pubkey: 137, x
  • script: 138, x
  • privkey: 227, a

Protocol switch percentage

Also needs to be decided the percentage of votes that will trigger the protocol switch 2 weeks later. I suggest 60% like on B&C.

Note that if there’s a conflict between shareholders the majority is enough to make the protocol switch (they would have to actively work on that though).

Default fees

The new currencies need a default fee used when a shareholder doesn’t specify one in his vote. The current default fees are 1 NSR and 0.01 NBT.

I suggest we use 0.01 as the default fee. It will also be the default fee for future currencies.

Allowed future currency units

It was decided to allow unknown currencies at the protocol level to make adding new currencies easier (it would only require a new client for the users who want to use them).

The protocol currently encodes the unit in an 8 bit number, so there are 256 possible values. In the proposal I suggested we use only printable ASCII caracters to make things easier. But I now think it would be better to allow all the 256 possible units and should not take much more time. Future clients may use a mapping of names instead of single characters. We could already start now and use for example “US” as US-NBT unit in addition to ‘B’, but that’s out of the perimeter of my proposal.

For this release the client will display ‘?’ whenever it needs to mention an unknown unit.


Nu 3.0.1 release with new currencies
#2

B&C already uses 28 © for the BlockCredits (but uses 30 (D) for the scripts). I can’t think of a good alternative though.


#3

the name of the chinese currency is renminbi, and its accounting unit is yuan. using Y is better than C imo. i don’t know if any other china-related coin use Y, thouugh


#4

I support the proposed new currency details except that I agree with MHPS using the Y as this relates to the currency unit Yuan. It solves the issue you raised with B&C already using the C.

I’m for future proofing in the direction you suggest if that doesn’t add a lot more work. Retrofitting is usually more expensive. Just my thoughts.


#5

I think the idea with the new naming was to refer to the countries and not the currencies. Using Y as unit name would not change the currency name CN-NBT though, so I guess that would be ok and would indeed solve the B&C conflict.

We could use version 78 (Y) for the public keys and 79 (Y or Z) for the scripts.


#6

how long can be finished?


#7

In the proposal I estimated the completion would take about 60 days, but it depends a lot of my available time. I will probably have more time than I initially estimated, so the first release may actually happen in early November.

When all the code is finished and the final release is made, the new protocol will become effective 14 days after 60% of the 2000 previous blocks have been generated by the new version. Then for the new currencies to be usable shareholders will have to issue custodian grants, which take a minimum of about 3.5 days. So the absolute minimum if shareholders are very reactive is about 19 days after the final release.

It may take a lot more time if shareholders want to test the new protocol and currencies on testnet first.

Conversely it may happen earlier if shareholders decide to mint on the production network with a release candidate or unreleased code, but this is not recommended.

It may also take some time for the new currencies to be available on exchanges.


#8

maybe keep in mind to prepare to support 50 more currencies, soon the USA will collapse, and every state will have their own currency