fix entropy calculating

This commit is contained in:
Alexey 2020-04-13 18:37:05 +03:00
parent 5bfea46d69
commit 4f55b80dc7
2 changed files with 12 additions and 6 deletions

View File

@ -76,7 +76,7 @@ Example: `wasm-pack build --release --target web -- --no-default-features --feat
## Initialize REAL ceremony: ## Initialize REAL ceremony:
1. Choose what contribition to use for the ceremony. Also choose what hash of future ethereum block we will use, tweet about it and calculate the VDF. 1. Choose what contribition to use for the ceremony (it should already exist). Also choose what hash of future ethereum block we will use, tweet about it and calculate the VDF.
1. Make sure your machine has at least 150 GB RAM and 200 GB SSD. 1. Make sure your machine has at least 150 GB RAM and 200 GB SSD.
1. Download the response file of the contribution. You can use `aria2c` accelerator for it. 1. Download the response file of the contribution. You can use `aria2c` accelerator for it.
1. `git clone https://github.com/tornadocash/phase2-bn254 && cd phase2-bn254` 1. `git clone https://github.com/tornadocash/phase2-bn254 && cd phase2-bn254`

View File

@ -180,12 +180,18 @@ export default {
await timeout(100) // allow UI to update before freezing in wasm await timeout(100) // allow UI to update before freezing in wasm
console.log('Source params', data) console.log('Source params', data)
const encoder = new TextEncoder(userInput) let msgBuffer = new TextEncoder('utf-8').encode(userInput)
const entropyFromUser = encoder.encode(userInput) let hashBuffer = await window.crypto.subtle.digest('SHA-256', msgBuffer)
const entropyFromUser = new Uint8Array(hashBuffer)
console.log('entropyFromUser', entropyFromUser.toString())
msgBuffer = window.crypto.getRandomValues(new Uint8Array(1024))
hashBuffer = await window.crypto.subtle.digest('SHA-256', msgBuffer)
const entropyFromBrowser = new Uint8Array(hashBuffer)
console.log('entropyFromBrowser', entropyFromBrowser.toString())
const entropy = new Uint8Array(userInput.length)
const entropyFromBrowser = window.crypto.getRandomValues(entropy)
// suffle the browser and user random // suffle the browser and user random
const entropy = new Uint8Array(entropyFromBrowser.length)
for (let i = 0; i < entropyFromBrowser.length; i++) { for (let i = 0; i < entropyFromBrowser.length; i++) {
entropy[i] = entropyFromBrowser[i] + entropyFromUser[i] entropy[i] = entropyFromBrowser[i] + entropyFromUser[i]
} }
@ -217,7 +223,7 @@ export default {
} else if (resp.status === 422) { } else if (resp.status === 422) {
if (retry < 3) { if (retry < 3) {
console.log(`Looks like someone else uploaded contribution ahead of us, retrying`) console.log(`Looks like someone else uploaded contribution ahead of us, retrying`)
await this.makeContribution({ retry: retry++ }) await this.makeContribution({ userInput, retry: retry++ })
} else { } else {
this.status.msg = `Failed to upload your contribution after ${retry} attempts` this.status.msg = `Failed to upload your contribution after ${retry} attempts`
this.status.type = 'is-danger' this.status.type = 'is-danger'