Interview w/ SoreGums from TRTL Core Team

A while back we used to do an interview series called Out Of The Shell. This was a series of interviews done by an actual journalist, Gigantomachia, who would pull aside members of the community for an article, and when it was over the person being interviewed would pick another member to be next. The series was great, but sometimes life gets in the way, and this interview with SoreGums sat on the shelf for a few months.

I never want good content to go to waste, and I’m sure you guys would love to read it, so here’s the interview with a member of our core team, SoreGums.

This will be the last “Out of the Shell”, but it is far from the last interview, enjoy!

How’d you first learn about TurtleCoin?

I first learned about it via the Kevin Rose podcast BlockZero: #003 – TurtleCoin – The next Dogecoin?.

What was it about the coin that drew you in. Why are you involved in TurtleCoin as opposed to the other coins out there?

I listened to that episode during the 1st week of Feb 2018, then joined Discord. For the first 48hrs checked out everything and sat in #help and assisted others finding their way. Poked around the dev channels and ended up with contributor access to the Meta repo to help with issues there and got a dev-role tag as well. This level/kind of openness in projects is uncommon. I was also involved in discussions and liked the atmosphere and am now here for good. Other projects in this field pretty much have an agenda, and the dev teams don’t encourage outside involvement. I don’t like writing code; I can, I’m not great at it (as measured by speed and regurgitating things from memory – like on a whiteboard). My skill set is figuring things out (know how to find what is needed, be it tools, utilities, platforms, etc. and then put them together) and providing a way forward. I also like writing documentation. I very much enjoy supporting teams rather than being the star or leader.

Also, TurtleCoin is very much a currency application which runs on the TRTL Network. This distinction is relatively new (June 2018), however, has been in the roadmap from the start, see the Karai milestone. The appeal here then for me is getting in amongst it at a level that requires a fundamental understanding of how this all works. Primarily a learning opportunity, I am a believer in continued learning/development is essential for avoiding depression and being “happy” (to put it in simple terms).

How long have you been interested in crypto?

First got into it April 2011, bought 3x AMD GPUs to start mining Bitcoin. It seemed like it would be a thing. Would have been great if I believed that with conviction, haha.

So you gave up early?

About HODL. Always been following. Been moving around a lot, electricity vs reward at the time etc. I’m a member of the “if only” club of 2017 (BTC price surge etc.). I traded in 40BTC for an Amazon gift card to buy eBooks etc. Still worth it, however, in hindsight, 40*20k is a large number, that would have been nice. Now, 7yrs later it’s visible traditional central banking will be impacted. Blockchain genie is free, an energy-efficient application of it will need to be figured out long-term though.

Have you been involved in any other crypto project before TurtleCoin?

Not like with TurtleCoin. On BitcoinTalk, I was pretty vocal in the Coino Coin project, which died due to the core dev team being two people and real life got in the way. It was also a fast block project, ran into problems with that and the size of the blockchain database. It is funny, Dash, Digibyte, Coino all started around the same time. The core idea of fast blocks and what that enables is why I am so interested in TurtleCoin.

I’m as involved in TurtleCoin as I am because of how the project works and the people attracted to this way of working. I’ve been able to engage in discussions and contribute some value, that is accepted. Then the reason this is a thing is that the project has a focus on the platform as a tool, rather than a way to get rich quick (funny how incentives dictate actions/behaviour). Which leads to the people, we seem to be evenly distributed across the globe teaming up as it were on common end-goal objectives. Everyone I’m actively involved with comes at the work via the collaborative, open, straightforward, humble, mindset.

You’ve mentioned being interested in fast block times a few times. What about fast block times interests you and what do they enable?

Everyday transactions, the only way any cryptocurrency is going to become “the way everyday transactions are conducted” is if they are instant or close enough. In Australia/New Zealand they have self-service checkouts at the supermarket, NZ has self-service petrol pumps, a financial transaction needs occur to complete the sale as it were. So fast block times matter, no one is going to adopt a new way that requires them to stand around for more than 5secs before they can go. Thus immediate responses from the network are essential (fundamentally there doesn’t need to be fast block times, however as a building block it is a logical place to work from/at). Bitcoin is getting instant transactions via technology like lighting network, which briefly means people between the purchaser and seller guarantee amounts are moving from purchaser to seller instead of the network directly (over-simplified, general idea).

So practically how all this works is like this. A transaction broadcast to the network is the equivalent of authorisation in the current visa/card networks. This authorisation is saying “these funds have been allocated FROM this account TO this other account”, allocated means on the way to the destination, (privacy coins, of which TurtleCoin is one, only the sender and receiver know the FROM and TO parties) and is instant. In the visa/card networks at this point the sale is, and everyone moves on, the purchaser has their items, and the seller is confident they’ll receive the funds/the transaction will settle (funds show up in the clear in their account, arrived at destination), eventually as guaranteed by legal contracts etc. In the blockchain world, this is a little bit tricky as there is no guarantee by anyone that these broadcasted transactions will ever be settled/confirmed.

Settlement in blockchain tech comes in the form of included transactions in blocks, fast block times mean these blocks, and thus transactions being confirmed happens fast. Each time a block is produced from when the transaction was first included in the blockchain is an additional confirmation that the funds moved from one account to another. For TurtleCoin the target time for block production is 30 seconds. This means within 20 minutes a seller can be confident they will have the funds (technically they have the funds within 30 seconds). Contrast this to the Visa/card networks the seller needs to be cautious because the funds could be taken back up 90 days or even more depending on the card network and agreements etc., for various reasons. It is challenging in the blockchain world for a purchaser to take back the amounts they have sent as the confirmations continue to accumulate, there is no authority to turn to mediate on their behalf.

That is a super long answer however it is not often explained in detail for everyday people to make the connection between block times and how Visa/card networks operate. TRTL Network has attracted a lot of regular people due to how the community and project members interact with each other, so perhaps someone will find the above details useful.

Having code that enables fast block times isn’t the only factor that would lead to actual real-world adoption of TurtleCoin. What do you think needs to happen beyond the code for this to take off?

Utility. It is the answer to all blockchain adoption. TurtleCoin has it as a premise, however, in practice, it is still in the infancy stages. Once the TRTL Network Spec is defined, it’ll allow anyone to write any code that speaks to all nodes in the network. Said another way, the current TurtleCoind daemon can be replaced by some system that works perfectly for the people writing the code, and they will be able to interact with the TRTL Network just fine.

As for specific things that could promote real-world adoption, supplement all transactions that happen via cash with TurtleCoin transactions. It is going to take business relationships of the community to make that happen. One thing that will help any of those conversations is the access to reliable APIs, so the barrier to entry is as low as possible. I am talking about web wallets or platforms that act like web wallets. Just so happens that one such platform is under development by Fexra (GitHub/Discord). Fexra is building out a web wallet platform that enables merchants to integrate with the TRTL Network without having run, own and operate independent infrastructure and at least in the beginning, and this is needed. As the TRTL Network project progresses and standard tools are developed and released under the “Turtle Pay” heading, being able to find TurtleCoin and then be offering it the next day as a way to exchange value, this is what encourages adoption: ease of use; security; etc.

What do you do IRL? Career? Student?

I’ve been in IT since leaving high school in 2002. My predominant occupation is taking care of my son; he’s 1yr old. So am blazing my path doing different things here and there, IT related.

What are you doing in Vietnam?

I’m supporting a tourism company to attract foreigners, via native English website. They are a successful Vietnamese domestic tourism company.

What’s your favorite pizza?

Italian, from Italy; a bit of sauce, some fresh cheese, something green. Loved visiting there a few years ago, missed it immediately when we crossed the border to France. French delis are amazing, eating out of a deli all the time while possible, would not be ideal.

Any particular projects or initiatives you’re working on right now where you’re seeking community input?

I’m an analyst and details focused type of person that can also zoom out to verify the big picture as well. As such infrastructure and breaking down how things work has me focused on developing the project Krang. It is a Blockchain Automation Testing Suite, which means standing up infrastructure automatically and running tests on it, measuring results and creating reports. Said in plain language, turning on multiple computers, installing all the needed software for the blockchain network to function and checking how things run and writing about/reporting on it.

Krang will work for TRTL Network first, then move onto other blockchain projects. There are a bunch of goals that get covered by the above being real. It means we can automatically test releases before pushing them out. We can check for regressions in performance or even benchmark to figure out where we could make performance improvements. It enables us to test the theoretical parts with ease. It allows us to test different network attack scenarios with ease and assist in developing mitigations.

It is considered a massive project regarding what it enables. There will be a fair amount of code created to package all the standard tools and even more documentation written to allow others to use Krang or further extend it. The actual work to be done though is standard practice in organisations that prefer measured/ correct results, rather than guesses.

So if the above appeals to you, ping me on Discord. One other fellow in Australia is also involved and enjoys working on the infrastructure puzzle.

Now that TurtleCoin has been listed with CoinMarketCap what do you think that increased exposure might mean for TRTL.

I think it mostly signals a validation of the work being done. The group of contributors to the project is expanding each week. For them to be seeing that the project is getting positive attention will help with the positive feedback loop. For the users of the network and future users, it is also a positive signal.

There is a dark side to CoinMarketCap in that their timing on information updates has been shown to be self-serving and would encourage people to seek alternative data points instead of relying solely on CMC. One such site is CoinGecko.com, since TurtleCoin’s inception, the project has climbed up the developer ranking there and now (2018-09) TRTL is ranked 26. Slow and steady is the TurtleCoin motto, we’re here for the long term. The openness of TurtleCoin in terms of accepting contributions is great and wide, the project might be viewed at first glance as being a bit of a lark with its meme coin start, however, it is serious about the technology and the utility it is seeking to enable.

One of the projects primary objectives is to educate anyone interested in blockchain technology, either as a user or as a developer. As such the more exposure we get the more people we’ll be able to impact and give people a real handle on what this technology is all about so they can feel empowered and be an active participant in this new world. Like how the internet has connected everybody on the planet, it was the realm of the nerds when it started, blockchain technology needs to have some of the nerd transformed and made accessible for everyone.

Also…When you’re not working or hanging out in the TurtleCoin discord, what do you like to do for fun?

Go to the movies, went to see Deadpool 2 the other week. The first one was best, the second was good fun and entertaining as well, it is based on a comic series though, and well, it’s a bit hard to “out original” the original.

Travelling, reading, learning, visiting family, going out for the day, playing chess with my wife are some other things. Continue Reading →

The Quest for Lightning Block Propagation

TurtleCoin has 30 second block time which makes transactions on the network faster than other projects; however, it poses some challenges in making sure that new blocks propagate across the entire network as quickly as possible to prevent the creation of unnecessary network forks. While increasing the number of nodes on the network helps to achieve this goal, reducing the size of the blocks that are transmitted between nodes allows us to propagate a block so fast it’s almost as if they were transmitted by lightning.

Network Propagation

Understanding what information is propagated throughout the network is a requirement for making sense of what we’re trying to accomplish when we talk about speeding up propagation.

Each node that is connected to the network performs vital functions such as, but not limited to:

  • Verifies transactions (signatures, no double spending, structures, etc.)
  • Verifies blocks (makes sure that they meet the difficulty requirements, are valid in the chain, contain valid transactions, etc.)
  • Maintains a transaction pool (transactions that have been submitted to the network but not included in a block)
  • Relays transactions & blocks to peer nodes (those the node is connected to)

Each time that a new transaction, in its entirety, is submitted to a node for processing by a user, that transaction is added to the node’s transaction pool and then relayed to all its connected peers who relay it to their peers until everyone on the network has those transactions.

Mining a Block

Once a transaction is in the transaction pool, it’s hash is then included in the block template that is passed to miners via pools or directly from the node if solo mining.

When a miner (or pool) finds a block the block, with all its glory, it is submitted to the node, it is validated, added to the chain, and then the full block containing every transaction including its inputs, outputs, signatures, etc. is relayed to all the node’s peers. Those peers relay it to their peers after verifying it and adding it to their copy of the blockchain, and so on until everyone has the new block.

Block Propagation Payloads

The full blocks that are sent between nodes have the sizes as reported on the block explorers. Some blocks are small at only a few hundred bytes while others with many transactions or transactions with lots of inputs/outputs can climb to well over 100KB. 100KB does not seem like a lot of data, but when you need 100KB to propagate between >1,000 nodes, it takes considerable time. We need the elapsed time from block creation to full network propagation to be as little as possible to make sure that the nodes that are mined against always have the latest information about the chain.

But… Why?

You may be asking yourself, “If transactions are propagated around the network for the transaction pool and a node already has them, why are we sending them again, in their entirety, with every block that is propagated?”

To put it bluntly, we don’t need to send everything all the time if a node already has most of the information needed to verify a new block. Sending all of it again is just duplicating things it already has.

Lite Blocks to the Rescue

Enter the concept of Lite Blocks. Lite Blocks are a special kind of block created just for synchronization between nodes. A Lite Block is just like a full block except it only contains the transaction hashes not the full contents of the transactions (inputs, outputs, signatures, etc.).

When a node receives a Lite Block, it looks through the list of transaction hashes the block contains, checks its local transaction pool, and plucks the needed transactions from the pool. If it encounters a transaction that is not in its transaction pool (for any reason), it reaches out to its peers and requests just that transaction. Once the node has all the transactions the block contains, the block is verified, and added to the node’s local copy of the blockchain.

The node then starts the relaying process to propagate the new block to its peers. In going through the list of connected peers, it identifies which of its peers support Lite Blocks and which do not support Lite Blocks. It relays the appropriate block type (Full or Lite) to its peers as needed.

If you’re keen for additional reading on the underlying concept of Lite Blocks check out BTC’s BIP-0152 as well as Monero’s Fluffy Blocks.

TurtleCoin’s Implementation

Adding Lite Block functionality results in significantly smaller blocks propagating across the network. In testing, we’ve observed Lite Blocks as little as 1% of the full block size. Transferring 1KB versus 100KB is a momentous reduction in the amount of data transferred between nodes. This reduction helps to improve block propagation times in a massive way. TurtleCoin nodes will now prefer to send Lite Blocks whenever possible to reduce the size of the information exchanged between nodes. The node will fall back to Full Blocks only when necessary.

@rashedmyt has completed the work required to add Lite Blocks into the core TurtleCoin code. He’s built it in such a way that it does not require a fork of any kind as it relies on the P2P version that we use in a couple of different places. Our plans are to activate Lite Block capability with an upgrade to P2P Version 4. This P2P update will make it into the next release of the core TurtleCoin software.

The addition of Lite Blocks was listed as a TurtleCoin bounty and @rashedmyt will be picking up a 2.05M TRTL bounty for the efforts he’s put forth in getting Lite Blocks implemented in the core code. When you see him in Discord give him a high-five and a round of applause. Continue Reading →