c# pow implementation work

This commit is contained in:
Kevin Froman 2020-09-20 21:13:46 +00:00
parent 60c1ec07e9
commit 499981ed52
5 changed files with 34 additions and 8 deletions

View File

@ -1,5 +1,7 @@
using System; using System;
using System.Text; using System.Text;
using System.IO;
using System.Collections.Generic;
using onionrpow; using onionrpow;
@ -9,8 +11,18 @@ namespace onionrpow_cli
{ {
static void Main(string[] args) static void Main(string[] args)
{ {
Console.WriteLine("Hello World!");
onionrpow.OnionrPow.compute(Encoding.UTF8.GetBytes("test"), 4); using (Stream stdin = Console.OpenStandardInput())
{
var data = new List<byte>();
byte[] buffer = new byte[60000];
int bytes;
while ((bytes = stdin.Read(buffer, 0, buffer.Length)) > 0) {
//stdout.Write(buffer, 0, bytes);
data.AddRange(buffer);
}
onionrpow.OnionrPow.compute(data.ToArray(), 3);
}
} }
} }
} }

View File

@ -11,7 +11,7 @@ namespace onionrpow
public static void compute(byte[] data, int difficulty){ public static void compute(byte[] data, int difficulty){
using (var shaAlg = SHA3.Net.Sha3.Sha3256()) using (var shaAlg = SHA3.Net.Sha3.Sha3256())
{ {
// Replace beginning json with nonce // Replace beginning json with counter
int counter = 0; int counter = 0;
var copy = new List<byte>(); var copy = new List<byte>();
@ -25,12 +25,12 @@ namespace onionrpow
copy.Add(co); copy.Add(co);
} }
int c = 0; int c = 0;
var copy2 = new List<byte>();
while (true){ while (true){
toploop: toploop:
c += 1; c += 1;
var num = Encoding.UTF8.GetBytes("{\"pow\": " + c.ToString() + ","); var num = Encoding.UTF8.GetBytes("{\"pow\": " + c.ToString() + ",");
var copy2 = new List<byte>(); copy2.Clear();
copy2.AddRange(num); copy2.AddRange(num);
copy2.AddRange(copy); copy2.AddRange(copy);
var hash = shaAlg.ComputeHash(copy2.ToArray()); var hash = shaAlg.ComputeHash(copy2.ToArray());
@ -45,7 +45,9 @@ namespace onionrpow
break; break;
} }
} }
Console.WriteLine(Encoding.UTF8.GetString(copy2.ToArray()));
Console.WriteLine(BitConverter.ToString(hash)); Console.WriteLine(BitConverter.ToString(hash));
Console.WriteLine(c);
break; break;
} }
} }

12
scripts/testblock.py Executable file
View File

@ -0,0 +1,12 @@
#!/usr/bin/env python3
import sys
import os
if not os.path.exists('onionr.sh'):
os.chdir('../')
sys.path.append("src/")
import onionrblocks
expire = 600
print(onionrblocks.insert(data=os.urandom(32), expire=expire))

View File

@ -113,7 +113,7 @@ class SubprocessPOW:
nonce = 0 nonce = 0
data = self.data data = self.data
metadata = self.metadata metadata = self.metadata
metadata['nonce'] = secrets.randbits(16) metadata['n'] = secrets.randbits(16)
puzzle = self.puzzle puzzle = self.puzzle
difficulty = self.difficulty difficulty = self.difficulty

View File

@ -14,8 +14,8 @@
"hide_created_blocks": true, "hide_created_blocks": true,
"insert_deniable_blocks": true, "insert_deniable_blocks": true,
"max_block_age": 2678400, "max_block_age": 2678400,
"minimum_block_pow": 5, "minimum_block_pow": 6,
"minimum_send_pow": 5, "minimum_send_pow": 6,
"public_key": "", "public_key": "",
"random_bind_ip": true, "random_bind_ip": true,
"security_level": 0, "security_level": 0,