Author

Topic: BTCD is no more - page 209. (Read 1328507 times)

legendary
Activity: 1764
Merit: 1031
October 07, 2014, 11:29:38 AM
You need to compile it yourself, but it's easy. Install the dependencies:

...

Then install Qt Creator and open the BitcoinDark-qt.pro file.

That's about it. Let me know if you have a problem.

Thanks, appreciate it. Doing it now, so far so good...
This is all another language to me. This will make for good documentation though.

Edit: Er, where is it? I installed the dependencies and downloaded the source, all ok. But I can't see the bitcoindark directory.
Edit edit: turned out I didn't have git installed, so that fixed it. But what am I making? "No targets specified and no makefile found. Stop."

I shouldn't have said that it's easy  Roll Eyes

Building the Qt wallet is easy, the daemon not so much. Bear with me, I have a Ubuntu box and I'll try to build it myself. If it works then I can give you proper instructions.

Haha, thanks. James said this would be 'relatively painless'. Smiley
sr. member
Activity: 470
Merit: 250
October 07, 2014, 11:27:57 AM
You need to compile it yourself, but it's easy. Install the dependencies:

...

Then install Qt Creator and open the BitcoinDark-qt.pro file.

That's about it. Let me know if you have a problem.

Thanks, appreciate it. Doing it now, so far so good...
This is all another language to me. This will make for good documentation though.

Edit: Er, where is it? I installed the dependencies and downloaded the source, all ok. But I can't see the bitcoindark directory.
Edit edit: turned out I didn't have git installed, so that fixed it. But what am I making? "No targets specified and no makefile found. Stop."

I shouldn't have said that it's easy  Roll Eyes

Building the Qt wallet is easy, the daemon not so much. Bear with me, I have a Ubuntu box and I'll try to build it myself. If it works then I can give you proper instructions.
legendary
Activity: 1764
Merit: 1031
October 07, 2014, 11:03:10 AM
You need to compile it yourself, but it's easy. Install the dependencies:

...

Then install Qt Creator and open the BitcoinDark-qt.pro file.

That's about it. Let me know if you have a problem.

Thanks, appreciate it. Doing it now, so far so good...
This is all another language to me. This will make for good documentation though.

Edit: Er, where is it? I installed the dependencies and downloaded the source, all ok. But I can't see the bitcoindark directory.
Edit edit: turned out I didn't have git installed, so that fixed it. But what am I making? "No targets specified and no makefile found. Stop."
sr. member
Activity: 470
Merit: 250
October 07, 2014, 10:28:29 AM
I'm trying to put together some documentation for the SuperNET API and, as James says, the best way to learn about it is to play with it.
I've got Ubuntu freshly installed on an old computer but linux isn't something I've used much before. Is there a (hopefully very basic) guide to downloading the BTCD daemon so I can tinker with some API calls?

You need to compile it yourself, but it's easy. Install the dependencies:

Code:
sudo apt-get install build-essential
sudo apt-get install libssl-dev
sudo apt-get install libdb++-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libqrencode-dev

Then download the source:

Code:
git clone https://github.com/laowais/bitcoindark

Then compile it:

Code:
cd bitcoindark/src
make -f makefile.unix

If you want the Qt wallet:

Code:
apt-get install qt5-default qt5-qmake qtbase5-dev-tools qttools5-dev-tools build-essential libboost-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libssl-dev libdb++-dev

Then install Qt Creator and open the BitcoinDark-qt.pro file.

That's about it. Let me know if you have a problem.
legendary
Activity: 1764
Merit: 1031
October 07, 2014, 10:08:42 AM
I'm trying to put together some documentation for the SuperNET API and, as James says, the best way to learn about it is to play with it.
I've got Ubuntu freshly installed on an old computer but linux isn't something I've used much before. Is there a (hopefully very basic) guide to downloading the BTCD daemon so I can tinker with some API calls?
legendary
Activity: 3570
Merit: 1126
October 07, 2014, 06:30:55 AM
I made some changes to the OP.

If anyone has any further comments or suggestions, let me know.

Thanks

can you put the updated multipool URL? It should be www.bitcoindark.ca

Also, can you contact Bter and have them update the BTCD "Mining" section with that url? They link to the defunct one but seem to just ignore my requests to update it.

Done, thanks Crackfoo.  I'm not someone that has their ear, however maybe someone in the forum could drop them a message.

Thanks. Yeah, clearly I'm not either Smiley hopefully someone can get through to them.
sr. member
Activity: 441
Merit: 500
October 07, 2014, 06:28:30 AM
I made some changes to the OP.

If anyone has any further comments or suggestions, let me know.

Thanks

can you put the updated multipool URL? It should be www.bitcoindark.ca

Also, can you contact Bter and have them update the BTCD "Mining" section with that url? They link to the defunct one but seem to just ignore my requests to update it.

Done, thanks Crackfoo.  I'm not someone that has their ear, however maybe someone in the forum could drop them a message.
legendary
Activity: 3570
Merit: 1126
October 07, 2014, 06:22:56 AM
I made some changes to the OP.

If anyone has any further comments or suggestions, let me know.

Thanks

can you put the updated multipool URL? It should be www.bitcoindark.ca

Also, can you contact Bter and have them update the BTCD "Mining" section with that url? They link to the defunct one but seem to just ignore my requests to update it.
sr. member
Activity: 441
Merit: 500
October 07, 2014, 06:06:12 AM
I made some changes to the OP.

If anyone has any further comments or suggestions, let me know.

Thanks
legendary
Activity: 1176
Merit: 1134
October 07, 2014, 04:10:47 AM
[ANN - MofNfs: store files in the SuperNET cloud using fully encrypted M of N shared secret fragments]

Since there was no large network for me to test with today, I decided to make two new API calls that allow for cloud storage of files. They are massively encrypted and also M of N is supported to deal with hash collisions, sybil attacks, offline nodes, etc. With the proper M and N settings, I think this will be quite a resilient file storage appropriate for the files you just cant lose. The comms with the cloud are via the DHT API from this weekend and the L parameter is for the max number of onion layers to use and all the packets are the same size, so there is no leakage based on packet size.

Now I am not sure what all the other decentralized storage projects are doing and I am sure what I did today is just a small portion of a full system. Still, after I debug it tomorrow, it will be an easy way to safely put things in the cloud.

char *savefile[] = {  "filename", "L", "M", "N", "usbdir", "password", 0 };
char *restorefile[] = { "filename", "L", "M", "N", "usbdir", "password", "destfile", "sharenrs", "txids", 0 };

./BitcoinDarkd SuperNET '{"requestType":"savefile","filename":"","L":0,"M":1,"N":1,"usbdir":"","password":""}'

The savefile will print (and save in usbdir) the required sharenrs and txids JSON fields to use for the restorefile.
The "destfile" field is where the file will be reconstructed.

If the "usbdir" parameter is set, then local backups are made (highly recommended!) and it is used to check the data coming back from the cloud. After you verify that the cloud has a proper copy, then you can partition the various parts from the usbdir directory to various places to have two full backups, one under your local control and one in the cloud.

The max value for N is 254 and M has to be less than or equal to N. The M of N parameters are independent of the "password" field. If you are using M of N, then unless the attacker gets a hold of M pieces, they wont be able to reconstruct the file. Without the txid list, the attacker wont know how to reconstruct the file.

But why take any chances. so I made the password field use an iterative method to create what I think is a pretty practical encryption method, which is based on the name of the file, your pubNXT acct passphrase and the password itself. The length of the password determines the number of ciphers that are applied

        namehash = calc_txid(name,strlen(name));
        len = strlen(password);
        passwordhash = (namehash ^ calc_txid(keygen,strlen(keygen)) ^ calc_txid(password,len));
        for (i=0; i        {
            expand_nxt64bits(key,passwordhash);
            cipherids = (password % NUM_CIPHERS);  // choose one of 18 ciphers
            privkeys = clonestr(key);
            if ( i < len-1 )
                passwordhash ^= (namehash ^ calc_txid(key,strlen(key)));
        }
  
Since the keygen is the pubNXT password, which in turn is a dumpprivkey for a BTCD address, this assures high entropy and the filename being encrypted is added to the passwordhash so that different files will have different encryption keys. By using the password to modify the initial password hash and to determine the number of ciphers and their sequence creates a lot of impact from even a short password, like a PIN

When M of N is combined with password, the attacker would need to get a hold of the name of the file, M fragments, the list of txids, the randomly generated sharenrs array and the password you used. Unless your computer is totally compromised and you divulge your short password, this seems like a pretty good level of security.

Now with the DHT there is the chance of collision, sybil attacks, inaccessible nodes, etc. I think using M of N side steps all of these issues. Also, the txid (calculated like NXT does) is based on the contents being stored, so it would take a lot of computation to be able to even get control of the nodes needed to block access to any specific content and near impossible to spoof anything. Maybe someone can come up with a sybil attack that can be done? However, without knowing the hash values of all the fragments, where will the sybils setup their attack? And will they be able to invalidate M copies that they dont know the txid for?

The following are the ciphers:
    "aes","blowfish","xtea","rc5","rc6","saferp","twofish","safer_k64","safer_sk64","safer_k128",
    "safer_sk128","rc2","des3","cast5","noekeon","skipjack","khazad","anubis","rijndael"

Having a place to store things reliably will help with managing telepods, especially since with the privateblockchains, any loss of data on your computer would not be good. So I think I will default to cloud backup for the telepods. Unless your computer is compromised and your divulge your passwords, it wont do anybody any good to get some telepod fragments. In any case, if they have compromised your computer, they would have access to the same data.

James
sr. member
Activity: 470
Merit: 250
October 07, 2014, 02:13:37 AM
SuperNET forum is down. Anyone else having problems?

Yep, down for me too.
legendary
Activity: 1764
Merit: 1031
October 07, 2014, 01:58:03 AM
SuperNET forum is down. Anyone else having problems?
legendary
Activity: 1176
Merit: 1134
October 06, 2014, 02:55:18 PM
tested findvalue, worked the first time:

./BitcoinDarkd SuperNET '{"requestType":"findvalue","name":"jl777"}'
STORE.({"result":"kademlia_store key.(4322723274388863363) data.(deadbeef) len.4 -> txid.0"})

./BitcoinDarkd SuperNET '{"requestType":"findvalue","name":"jl777"}'
{"result":"deadbeef"}

the first time, it terminates the search when another node sends a store API, which is exactly what happened. The second search just returns the value that it has locally.

So, as I predicted, I was able to get the DHT working and this is all the current calls: ping (pong), findnode (havenode), store, findvalue (havenodeB). To do it right required adding outof band binary data beyond the JSON inside the onion packet and that was a good time to get all the packets to the same size and also get the data compression in the loop.

Now I need a big network and bug reports. These are things I cannot do alone!

James


Hi James,

If there is anything I can do please let me know, i'd love to help out. However, I have close to 0 coding expirience. But I am currently following a IT study so I do have some basic knowledge. I've also sent you a PM, with some other questions. Smiley
soon we should have end user testable builds, but I am not doing that so not sure when it will be exactly
full member
Activity: 154
Merit: 100
October 06, 2014, 02:19:17 PM
Trying to get the wallet to synch on my road machine .... no luck.  Even though it's my instructions in the OP.  Arrggghh.

Can  anyone comment on why the config file download is not the same as the conf details posted in the OP.  Or if there is some newer version. Or what the prob might be now ....

Thx.
sr. member
Activity: 364
Merit: 250
October 06, 2014, 07:35:05 AM
tested findvalue, worked the first time:

./BitcoinDarkd SuperNET '{"requestType":"findvalue","name":"jl777"}'
STORE.({"result":"kademlia_store key.(4322723274388863363) data.(deadbeef) len.4 -> txid.0"})

./BitcoinDarkd SuperNET '{"requestType":"findvalue","name":"jl777"}'
{"result":"deadbeef"}

the first time, it terminates the search when another node sends a store API, which is exactly what happened. The second search just returns the value that it has locally.

So, as I predicted, I was able to get the DHT working and this is all the current calls: ping (pong), findnode (havenode), store, findvalue (havenodeB). To do it right required adding outof band binary data beyond the JSON inside the onion packet and that was a good time to get all the packets to the same size and also get the data compression in the loop.

Now I need a big network and bug reports. These are things I cannot do alone!

James


Hi James,

If there is anything I can do please let me know, i'd love to help out. However, I have close to 0 coding expirience. But I am currently following a IT study so I do have some basic knowledge. I've also sent you a PM, with some other questions. Smiley
member
Activity: 73
Merit: 10
October 06, 2014, 06:50:41 AM
Maybe you guys want another blockchain-explorer:

https://bchain.info/BTCD/

website updated at http://bitcoindark.pw/block-explorer/

nice work
legendary
Activity: 1176
Merit: 1134
October 06, 2014, 05:30:26 AM
tested findvalue, worked the first time:

./BitcoinDarkd SuperNET '{"requestType":"findvalue","name":"jl777"}'
STORE.({"result":"kademlia_store key.(4322723274388863363) data.(deadbeef) len.4 -> txid.0"})

./BitcoinDarkd SuperNET '{"requestType":"findvalue","name":"jl777"}'
{"result":"deadbeef"}

the first time, it terminates the search when another node sends a store API, which is exactly what happened. The second search just returns the value that it has locally.

So, as I predicted, I was able to get the DHT working and this is all the current calls: ping (pong), findnode (havenode), store, findvalue (havenodeB). To do it right required adding outof band binary data beyond the JSON inside the onion packet and that was a good time to get all the packets to the same size and also get the data compression in the loop.

Now I need a big network and bug reports. These are things I cannot do alone!

James
legendary
Activity: 1176
Merit: 1134
October 06, 2014, 05:23:25 AM
[04:13] I just pushed another release

Sounds like great progress...
I am only debugging the easy cases, but once the bigger network is in place it will hopefully just work.
Since I cant do much without a bigger network, I figured might as well get distributed storage working
with the compression being tested with live data, I think 1kb stores can be handled, with some rare cases that have to be split up

so the out of band data was quite important for this. A day to code up the file system and a day to test for some simple setup with encrypted files in the cloud.

Of course, if a network can be built up so I can test the DHT with more than a few servers, I can do that and get Teleport validated. I say validated, as it worked over a month ago in loopback and now the network is getting stable, I dont expect much problems. I remember I had to do a bunch of accounting API, but that's just tedious work, nothing difficult like doing a DHT system from scratch over the weekend

James
legendary
Activity: 1176
Merit: 1134
October 06, 2014, 05:19:20 AM
[05:16] I pushed another release. this one with the store command debugged
[05:16] ./BitcoinDarkd SuperNET '{"requestType":"store","name":"jl777","data":"deadbeef"}'
[05:18] it was a bit tricky to deal with the out of band data, but it now works for submitting the command with a "name" field and internally with the "key" field, which is the lower 64bits of sha256 of the string
[05:18] and it at least parse it right and gets it to another node.
[05:19] I am out of things to test as the findvalue really requires more than a few nodes to verify, will be going offline for a bit, hopefully when I am back online there will be many servers running
Jump to: