As you may remember, I have been hard at work these past weeks working diligently to integrate libjl777 into BTCD core. Today I made nice progress on the final barrier to debugging Teleport from within BTCD itself!
I created a custom message that will propagate through the network and expire once its time limit is reached.
Why is this a big deal?
The message contains a string of information that will be passed to the receiving node. The receiving node then processes it using James' Teleport functionality, then relays it to other nodes until it is expired.
The end user need never send this message, it can all be done behind the scenes. Yet, you can using my custom rpc command. Today I sent a teleport message from rpc to a connected node, where it was processed in libjl777.
Barring some unforseen incident, this should allow us to soon begin full debugging of Teleport from within BTCD itself.
Matthew
the one potentially legitimate complaint people make about me is that I am doing too many things. The logic goes, jl777 is doing so many things they cant all be done, or maybe the quality cant be so good.
Now, if I were actually doing 12 different projects like it looks, then this would be much more of a valid point. However, my code has been compared to shorthand. Meaning no redundancies everything boiled down to its essence. And there are 20,000 to 40,000 lines of this, depending on the specific configuration.
Believe it or now, I am actually quite lazy when it comes to writing variations on the same thing. Mostly the same but different. We have all these cool services like Teleport, InstantDEX, Privatebet, SuperNET itself, but what if it was possible to extract the essence of these, the shorthand, and what if 80% of these projects are all the same shorthand?
This is not quite the right level, but it is not far off.
For example, this message that BTCDdev sent from the commandline that went into libjl777 and came back out. I made it so that with very little differences, the code is the same for Teleport, InstantDEX, ... I even yesterday figured out how to add other coin networks without much extra bandwidth, so this means you can send ANY libjl777 API call to any node in the entire SuperNET!
of course, non bitcoin based coins will need to duplicate what BTCDdev did, but now he is expert in this, he will be able to help other coins. To add a new SuperNET service is literally half hour of defining the name, parameters and then of course invoking the unique function.
So, I am building a long distance telephone network. Each coin is in its own area code and you just make local calls, to contact somebody else running a different coin, you just specify his coin (area code) and now you are able to teleport, InstantDEX trade, Privatebet, or any other service. So all the different services are not having to deal with all the complexities of the encrypted multilayer routing, this is all built in. Currently the M of N is something that is custom to Teleport, but now this is seen how to be done, others can add this quite easily. So, I am actually doing just one thing, this telephone network and I am making some example telephones (Teleport, Privatebet...) Now these are some fancy telephones, with all the features, but the vast majority of work is in the "telephone network"
As soon as the SuperNET funds are coming in on Saturday, I will be able to have full attention on the coding side again. It was a one week delay, but this allowed BTCDdev to really improve the code logic and I think I was sort of productive this last week anyway. When a big financing thing comes up, it uses the same part of my brain as coding. I am making the intricate connections and coordinating a dozen different things, so this is what I am doing every week when I am coding, but it is hard to see when it is code and a bit easier to see when it is big money stuff
I also think you need to be thanking whoever is providing that big chunk of BTCD as a gift
James