This commit is contained in:
Will Ruddick 2020-07-18 05:14:16 +00:00
parent fe950b8bcf
commit ce824818a3

View File

@ -1,4 +1,4 @@
# xDAI Migration spec # x/bDAI Migration spec
<!-- <!--
valid status values are: Pre-draft valid status values are: Pre-draft
@ -10,36 +10,23 @@ valid status values are: Pre-draft
## Rationale ## Rationale
We want to give donors and community members a way to contribute to and cash-out from Community Inclusion Currencies with National Currency. We want to give donors and community members a way to contribute to and cash-out from Community Inclusion Currencies with National Currency.
By connecting to a reserve that is stable to the US dollar called xDAI we bring some stability and the ability for many to support local communities. By connecting to a reserve that is stable to the US dollar called x/bDAI we bring some stability and the ability for many to support local communities.
We also enable any CICs that have xDAI as a reserve to convert to any other CIC with xDAI as reserve. We also enable any CICs that have bDAI as a reserve to convert to any other CIC with bDAI as reserve.
## Before ## Before
Currently we are using a virtual reserve a generic ERC20 token. We have 2 Million of those reserve tokens against 8 Million Sarafu issued (the current Kenyan CIC). (Call those Sarafu_1 or S1) Currently we are using a virtual reserve a generic ERC20 token. We have 2 Million of those reserve tokens against 8 Million Sarafu issued (the current Kenyan CIC). (Call those Sarafu_1 or S1)
## After ## After
We have 40,000 xDAI to put as the reserve and are looking at minting (16Million) tokens (called Sarafu_2 S2) We have 40,000 DAI to bridge to a bDAI token and put as the reserve and are looking at minting (16Million) tokens (called Sarafu_2 S2)
with a connector weight (target Reserve Ratio) of 0.25 (25%) and an inital price of roughly 100 Sarafu to 1 xDAI (USD stable) with a connector weight (target Reserve Ratio) of 0.25 (25%) and an inital price of roughly 100 Sarafu to 1 xDAI (USD stable)
(Note that the 100 Sarafu to 1 xDAI will approximate the Kenyan Shillings to USD rate) (Note that the 100 Sarafu to 1 xDAI will approximate the Kenyan Shillings to USD rate)
## Implementation ## Implementation
Each existing user should have a completley new wallet and private key for security reasons and be given the same balances they currently have with the new (xDAI reserve) Sarafu. Roughly 8Million Sarafu_1 in wallet will be replaced with Sarafu_2 Each existing user should have a completley new wallet and private key for security reasons and be given the same balances they currently have with the new (bDAI reserve) Sarafu. Roughly 8Million Sarafu_1 in wallet will be replaced with Sarafu_2
### Workflow ### Workflow
> lash: what's meant by public and private functions here?
> will: I'm just considering what should be private=internal=only the owner can use vs public functions ....
> Also can we make some of the internal/private functions permissionless post creation (i.e. remove them/ block the doors) ... Upgradability?
> lash: private keys: should we take the opportunity of setting up deterministic wallets? perhaps even on the platform we may want to shuffle private keys once in awhile.
> will: Yes and no. For now on the platform we really want easy trackability to track donor impacts .... I would leave this for the web wallet etc. I just want to make sure the private keys are all secure - who has access etc.
> lash: what is a "facilitator address"?
> Will: Lets remove this - see depth_bump comments
1. Synch db <->Blockchain - ensure synronization between our db (USSD interface) and blockchain 1. Synch db <->Blockchain - ensure synronization between our db (USSD interface) and blockchain
1. Finalize any contract changes to Bancor Suite (such as [Depth Bump](https://gitlab.com/grassrootseconomics/cic-docs/-/blob/master/spec/003_depth_bump.md)) 1. Finalize any contract changes to Bancor Suite (such as [Depth Bump](https://gitlab.com/grassrootseconomics/cic-docs/-/blob/master/spec/003_depth_bump.md))
1. Create Public vs Private Functions - Contracts as permissionless as possible 1. Create Public vs Private Functions - Contracts as permissionless as possible