Cassius
Legendary
Offline
Activity: 1764
Merit: 1031
|
|
August 15, 2014, 08:08:19 PM |
|
Don't know what the schedule is for publicity and the website. I'm away from Sunday until 3 September but happy to help with content when I'm back if you need it. Of course, by 2 weeks' time just about anything could have happened and BTCD could already be a top 10 coin...
I've been working with our PR agency on the first press release and it became clear I need to write a Tradebotpaper describing how BTCD is the crypto whose Turing complete scripting language has the most programmers who already know the language. Literally millions of coders know C, and tradebots are written in C! By using linked tradebots and some data synchronization functions, any corporation or group can deploy their own set of linked tradebots and they will maintain a private blockchain running independently. So, like the Internet can run any protocol, the BTCD supernetwork and linked tradebots can run any blockchain, custom programmed by anybody that knows C I realized it got a bit too complicated and needed Tradebotpaper. Not sure how the pirates will deal with an arbitrary number of overlapped heterogeneous blockchains. James Glad you've still got a sense of humour after the day NXT just had.
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
August 15, 2014, 08:27:27 PM |
|
There seems to be a lot of confusion about the usage of NXT. I guess most of you are not analyzing the libjl777 source code?
OK, I will describe how much of NXT is used for Teleport. I am sort of lazy when it comes to things that I have already got working and since I have tokenization using NXT acct working, I still use that as a method to prevent spoofing. What this means is that whenever a message is sent, I the NXT API generateToken function that generates a token based on that message (and time) and this allows me to use the NXT API function decodeToken.
These two functions are just using curve25519 locally to create a signature, at least I think that is how it is doing it. Anyway if I wasnt so lazy I could write my own tokenizing function and removed this NXT usage. I also use my internal hash table that is keyed off of a NXT account number, which is conveniently 64bits. To map a BTCD address to NXT address requires using a third NXT API function getAccountId, this again is a local function that converts anything to a NXT address
Maybe there are some few other dependencies, but the above three are the only ones I can think of. So, this means I am not using the NXT blockchain for teleport at all. I am not using the NXT blockchain for privacyServer, remember BTCD is making its own supernetwork so it has to be independent of any other network.
I do use NXT blockchain to clear InstantDEX trades. If the NXT blockchain disappears, that would certainly not be good, but there is no danger of that. The market price of NXT is totally irrelevant and as long as there are enough NXT nodes to keep its blockchain going, then InstantDEX keeps going. Since BTCD nodes will also have a NXT node, this assures that InstantDEX is secure.
With a multimillion dollar loss, I doubt bter will survive, coincidentally I had just yesterday totally emptied my bter account. This means the #2 exchange will likely take over the bulk of the day to day trading for NXT. That #2 happens to be MGW which has been handling 50 BTC to 100 BTC per day of deposit/withdraws and similar trading activity. As you know I happen to have written MGW and InstantDEX will benefit from this.
I hope this answers any concerns about BTCD reliance on NXT. I have written more code than all of the NXT core, there is a LOT of functionality that is totally independent of NXT. I am just lazy and tend to keep using what is not broken
James
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
August 15, 2014, 08:29:56 PM |
|
Don't know what the schedule is for publicity and the website. I'm away from Sunday until 3 September but happy to help with content when I'm back if you need it. Of course, by 2 weeks' time just about anything could have happened and BTCD could already be a top 10 coin...
I've been working with our PR agency on the first press release and it became clear I need to write a Tradebotpaper describing how BTCD is the crypto whose Turing complete scripting language has the most programmers who already know the language. Literally millions of coders know C, and tradebots are written in C! By using linked tradebots and some data synchronization functions, any corporation or group can deploy their own set of linked tradebots and they will maintain a private blockchain running independently. So, like the Internet can run any protocol, the BTCD supernetwork and linked tradebots can run any blockchain, custom programmed by anybody that knows C I realized it got a bit too complicated and needed Tradebotpaper. Not sure how the pirates will deal with an arbitrary number of overlapped heterogeneous blockchains. James Glad you've still got a sense of humour after the day NXT just had. It is bter that had a bad day, for NXT it avoided disaster by not rolling back the blockchain. 5% of coins is now concentrated back into a single person, so he is like a new full BTC founder via illegal means. This wont really affect NXT much, other than offer some nice low prices for buyers for the next week or so James P.S. I think you are one of few who finds "overlapped heterogeneous blockchains" funny
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
August 15, 2014, 08:55:19 PM |
|
Nxt is done, should be time for btcd then rught?
Um no. And, this whole teleport thing works with NXT. So be careful what you wish for. i know NXT is not gone but are you saying that without NXT there will be no teleport? I don't believe that is the case. If I've understood correctly, Teleport will work within BTCD in its own right. However, there is a complete ecosystem for trading and cashing out telepods, which will rely on the infrastructure James has been building within NXT (NXTprivacy, tradebots, InstantDEX). I don't understand all of the pieces of the puzzle, though. This was a bad day for NXT and a lot of people are understandably very unhappy about it. There was no good solution, only least-worst ones. For what it's worth, I think leaving the blockchain alone was the right course of action. Whether the hacker can be found and NXT returned remains to be seen. EDIT: PilotofBTC, that rings a bell too, but I'm not sure. Teleport does not use NXT blockchain at all, just a few NXT local functions Teleport uses privacyServers and every BTCD node is a privacyServer, you know fully decentralized Tradebots would use NXT blockchain for certain types of transactions, but it is possible to do direct wallet to wallet trades, so only would use the blockchains for the coins traded I am making a system that distributes functionality to all the nodes and doing as much as possible on a direct peer to peer basis. I design things for minimal reliance on external services (I do not consider local API functions as an external service) so unless I make error in design, then even the collapse of some significant external service will be an inconvenience, not a disaster I welcome any and all technical feedback so I can continue to improve the robustness of BTCD supernetwork James
|
|
|
|
PilotofBTC
Legendary
Offline
Activity: 1736
Merit: 1001
|
|
August 15, 2014, 09:02:10 PM |
|
Thanks for the clarification james. Your right, as you said, and I said, I wasn't reading the code. I thought you were teleporting on the NXT block chain. Let's hope NXT doesn't change their API for the parts you are using.
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
August 15, 2014, 09:24:32 PM |
|
Thanks for the clarification james. Your right, as you said, and I said, I wasn't reading the code. I thought you were teleporting on the NXT block chain. Let's hope NXT doesn't change their API for the parts you are using. ha ha ha they already changed the API for getAccount, I am used to it Here are some Teleport API: The first JSON function you need to call is getpubaddrs. "{\"requestType\":\"getpubaddrs\"}" this will return JSON I will leave out backslashes: [{entry},{entry}...] where each entry is: {"srvipaddr":"<ip addr>","srvNXTaddr":"<addr>","pubkey":"<addr>","pubBTCD":"<addr>","pubNXT":"<addr>","pubBTC":"<addr>"} any of the pubCOIN addrs can be used to send a message to that node. The pubkey is the actual session specific half of the keypair for that node. Probably dont need it, but nice to have it confirmed that it propagated the right values. Doing this command will update the database to the latest values and since the pubkeys are recreated for each session and any node can change what privacyServer they connect through at any time, I make it a separate command and doing this will also automatically publish your public info so the other side can contact you back. You are probably wondering how does this info magically appear in all the nodes. During the init call, in the jl777.conf file or JSON, there is the "pubaddr" field for BTCD. This directly maps to the NXT addr and also BTC addr (though I am still working on doing the BTC mapping), and so just from one pubaddr for BTCD, all the info is available and it automatically will send a broadcast message calling the C++ entry point with the required info. Once you have the srvpubaddr and the more importantly the srvipaddr, it becomes possible to send messages to the destination using: {"requestType":"routemsg","dest":"<destpubaddr>","msg":"<message>","numlayers":N} The dest is any of the pubaddrs for your recipient, "msg" is any ascii message you want to send and N is the number of onion layers you want to use, currently max of 2 defaults to 2. Once contact is established, teleport becomes possible: {"requestType":"teleport","dest":"<destpubaddr>","amount":float,"coin":"<BTCD|BTC|NXT...>","minage":a,"M":m,"N":n} minage a is the number of blocks for the youngest telepod to be used in the transporter, m and n are the multisig parameters n is max of 254. I find if I write the documentation before I code it up, often I find issues, so the above are what I will be coding today. If all goes well we will be able to test these basic low level commands and then we are off to the races. James P.S. I hope somebody is tracking these useful API posts so to make possible easy creating of programmer's guide
|
|
|
|
PilotofBTC
Legendary
Offline
Activity: 1736
Merit: 1001
|
|
August 15, 2014, 10:26:10 PM |
|
P.S. I hope somebody is tracking these useful API posts so to make possible easy creating of programmer's guide
Nice. Very clear.
|
|
|
|
xyzzyx
Sr. Member
Offline
Activity: 490
Merit: 250
I don't really come from outer space.
|
|
August 16, 2014, 01:42:35 AM |
|
There seems to be a lot of confusion about the usage of NXT. I guess most of you are not analyzing the libjl777 source code?
OK, I will describe how much of NXT is used for Teleport. I am sort of lazy when it comes to things that I have already got working and since I have tokenization using NXT acct working, I still use that as a method to prevent spoofing. What this means is that whenever a message is sent, I the NXT API generateToken function that generates a token based on that message (and time) and this allows me to use the NXT API function decodeToken.
These two functions are just using curve25519 locally to create a signature, at least I think that is how it is doing it. Anyway if I wasnt so lazy I could write my own tokenizing function and removed this NXT usage.
Nxt developers need to ensure backwards compatibility. It's kinda a mess right now with the changing API, as you're very well aware. Anyway, this is how tokenization works in Nxt: It's pretty straight-forward.
|
"An awful lot of code is being written ... in languages that aren't very good by people who don't know what they're doing." -- Barbara Liskov
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
August 16, 2014, 02:04:04 AM |
|
There seems to be a lot of confusion about the usage of NXT. I guess most of you are not analyzing the libjl777 source code?
OK, I will describe how much of NXT is used for Teleport. I am sort of lazy when it comes to things that I have already got working and since I have tokenization using NXT acct working, I still use that as a method to prevent spoofing. What this means is that whenever a message is sent, I the NXT API generateToken function that generates a token based on that message (and time) and this allows me to use the NXT API function decodeToken.
These two functions are just using curve25519 locally to create a signature, at least I think that is how it is doing it. Anyway if I wasnt so lazy I could write my own tokenizing function and removed this NXT usage.
Nxt developers need to ensure backwards compatibility. It's kinda a mess right now with the changing API, as you're very well aware. Anyway, this is how tokenization works in Nxt: It's pretty straight-forward. I am pretty sure I have the C code to a 25519 signing somewhere, but it is not a priority to eliminate NXT dependencies as I need it for AE tradings nice charts! maybe you can do some for the DarkPaper?
|
|
|
|
xyzzyx
Sr. Member
Offline
Activity: 490
Merit: 250
I don't really come from outer space.
|
|
August 16, 2014, 02:12:23 AM |
|
Nxt developers need to ensure backwards compatibility. It's kinda a mess right now with the changing API, as you're very well aware. Anyway, this is how tokenization works in Nxt: https://i.imgur.com/uFOmo95.pngIt's pretty straight-forward. I am pretty sure I have the C code to a 25519 signing somewhere, but it is not a priority to eliminate NXT dependencies as I need it for AE tradings If Nxt keeps the API as a moving target, there's always Dogeparty. Actually, I say that half-joking. If Nxt devs break your stuff with their constant API changes, I'll start complaining to them. I'm currently silently watching to see what they do. nice charts! maybe you can do some for the DarkPaper?
Thanks. Sure. Just point me to the sections you want illustrated. Edit: oh, BTW: http://ed25519.cr.yp.to/It is Ed25519, which is slightly different than the Curve25519 they're using, but it should work if you decide you need to use it.
|
"An awful lot of code is being written ... in languages that aren't very good by people who don't know what they're doing." -- Barbara Liskov
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
August 16, 2014, 02:15:23 AM |
|
Nxt developers need to ensure backwards compatibility. It's kinda a mess right now with the changing API, as you're very well aware. Anyway, this is how tokenization works in Nxt: https://i.imgur.com/uFOmo95.pngIt's pretty straight-forward. I am pretty sure I have the C code to a 25519 signing somewhere, but it is not a priority to eliminate NXT dependencies as I need it for AE tradings If Nxt keeps the API as a moving target, there's always Dogeparty. Actually, I say that half-joking. If Nxt devs break your stuff with their constant API changes, I'll start complaining to them. I'm currently silently watching to see what they do. nice charts! maybe you can do some for the DarkPaper?
Thanks. Sure. Just point me to the sections you want illustrated. http://209.126.70.170/DarkPaper.pdf it has places with "insert graphic here" so any of those that you can see how to make it nicely illustrated and of course any other graphic that comes to mind. DarkPaper is just all text now and it needs some illustrations Thanks!
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
August 16, 2014, 03:18:08 AM |
|
Been kind of hard with all the drama going on in NXT land today... Finally got the broadcasting/propagation of the pubkeys and pubaddrs coded, even tested out in the loopback setup I have. Seems like I am missing something as there wasnt much code required.
Next is to code up the message sending, but since I already have half a dozen variations on doing this, it should just be a matter of tweaking an existing function. Hopefully I will be able to focus...
James
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
August 16, 2014, 04:40:06 AM |
|
I am hijacked the rest of the day. Need to babysit MGW servers, which are critically needed with the shutdown of the major NXT exchange bter
James
|
|
|
|
chicken65
|
|
August 16, 2014, 10:20:47 AM Last edit: August 16, 2014, 10:38:22 AM by chicken65 |
|
Dev,
I cant understand much of what your saying. Is it possible you can sometimes intersect in plain english what some of the techie stuff means when you post- which relates to BTCD. I understand your busy though.
|
|
|
|
chicken65
|
|
August 16, 2014, 10:41:29 AM |
|
Can someone tell me what the meaning of this on my BTCD wallet is.
Weight? I understand this is going up, but what is it
|
|
|
|
SpringfieldM1A
|
|
August 16, 2014, 10:44:23 AM |
|
Dev,
I cant understand much of what your saying. Is it possible you can sometimes intersect in plain english what some of the techie stuff means when you post- which relates to BTCD. I understand your busy though.
There is a Darkpaper out, which explains the workings and ambition of Bitcoindark.It aims to be understood by both tech oriented people, and the general enthusiast (like me) It can be found here: http://www.flipgorilla.com/p/23023990364728535/show#/23023990364728535/0 Should you have any further questions feel free to ask them here. James is very busy at the moment, but he will gladly answer questions when he has the time.
|
|
|
|
bitkokos
|
|
August 16, 2014, 11:20:58 AM |
|
Can someone tell me what the meaning of this on my BTCD wallet is.
Weight? I understand this is going up, but what is it
That's for staking (PoS) Below I am pasting some info, but, I am not sure if they are correct. weight = coin age * balance coin age increases linearly over time as long as the coins are not used in a transaction. The exptected time estimate is not very good, I think it misses to take the weight increase into account so it always assumes the weight to stay constant. This is why the expected time usually decreases faster than real time. Also note that this is a probabilistic method. While you WILL get 1% per year, there is no deterministic way to calculate what you will earn at a particular day.
|
O_o
|
|
|
SpringfieldM1A
|
|
August 16, 2014, 11:28:29 AM |
|
Can someone tell me what the meaning of this on my BTCD wallet is.
Weight? I understand this is going up, but what is it
Weight = coin age * balance So your weight increases with both the time you stake coins in your wallet and the amount of coins you keep in your wallet. Your weight influences the amount of coins you are rewarded for staking. The higher the weight, the more coins you recieve from staking. Basically it's like interest on your savings account in a normal bank. The higher your savings account and the longer you keep it at the bank, the more interest you recieve.
|
|
|
|
demols
Newbie
Offline
Activity: 18
Merit: 0
|
|
August 16, 2014, 12:33:07 PM |
|
I just download the wallet i can make a backup ( this will be a .dat file ) but where can i import this file iff i need to ?
|
|
|
|
bitkokos
|
|
August 16, 2014, 01:30:39 PM |
|
I just download the wallet i can make a backup ( this will be a .dat file ) but where can i import this file iff i need to ?
if you are on a windows 7 computer this is the path C:\Users\youruserername\AppData\Roaming\BitcoinDark replace yourusername with your computer user name and the file is wallet.dat
|
O_o
|
|
|
|