This Week In TurtleCoin (October 16, 2019)

Developer Updates

This is a place where anybody in our community can submit a post about the TRTL project they’re working on. It’s a great way to attract helpers for your project and show people what to keep an eye out for. We encourage you to show works in progress as well as finished products, as we’re happy to see them all and it shows that we’re an active community.

TurtleCoin + IPFS

TurtleCoin Checkpoints
People have been using checkpoints for quite some time now to help speed up their daemon in syncing with the network. The generation of the checkpoints has been handled via automatic generation since May 7, 2018. Since then, like clockwork, and with almost a 100% success rate, the checkpoints have been updated, pushed, and pull requested into the GitHub repository for the entire community to download as needed.

As the chain has grows bigger, the size of the checkpoints file grows as well. GitHub has a maximum single file size limitation without using addons (git-lfs). We worked around the last time we bumped into the limit by separating the checkpoints into two CSV files, the first containing the first million blocks, and the second containing everything else. The two files were joined together into one, compressed, and committed into the repo. Unfortunately, we were quickly approaching the need to split the file again, thereby creating three such CSV files; however, the resulting zip or tarball would have exceeded that same file size limitation. This is a problem for the whole community.

A while back, Rock mentioned something like, “”it would be cool if we could put checkpoints in IPFS””. Such thoughts were noted, tucked away, and you know, forgotten. As I started receiving warnings regarding coming up on the file size limit again, I investigated this option. Over a few days, I’ve put together a new checkpointing service, distribution systems, and leveraged the help of a few IPFS pinning services, to automatically update and deploy the checkpoints into IPFS. The checkpoints latest checkpoints are always available via IPFS and I’ve hijacked the site at to provide a list of IPFS gateways where you can pick up the latest checkpoints (timed from your browser), provide details on how to use the checkpoints, given instruction on how to help distribute the checkpoints using IPFS, and even included a few developer tidbits for those of you that want to find the latest checkpoints programmatically.

Enjoy and hit me up in #dev_general if you have any questions or suggestions.

Threaded RPC

Threaded RPC
Been a busy few weeks, in fact I forgot to submit an update last week. The big thing I’ve been working on is putting the daemon RPC server on a separate thread. This allows the daemon to respond much quicker when it’s busy processing blocks and transactions.

The first version was a very simple change, and just passed the existing code through a new server and on a new thread. You can find that here if you want to try it out:

This version had a few multi threading issues which could cause crashes or bad data to be returned. So, I’ve been working on a full rewrite of the entire RPC code so I can more easily track down the crashes, modernize the codebase, and more easily add synchronization.

You can find this WIP here:…zpalmtree:threaded-rpc-wip

It currently has enough methods added to allow syncing a wallet with zedwallet-beta or wallet-api or proton. Once i’ve re-added all the other methods, I’ll start adding synchronization to fix the crashes with the first version.

Some other benefits of rewriting the whole module include much better CORS support, so you can access the daemon RPC from a browser with more ease, better error messages, and it setting a foundation for being able to build a much more friendly REST api. Finally, it will hopefully make it quicker to add new RPC methods and makes the wallet-api and daemon rpc code very similar.” Zpalm

ExtraHash rollin out after the interview

ExtraHash Interview
Big thanks to ExtraHash for taking time to do an interview with us. For those of you who don’t know, ExtraHash develops our default GUI wallet, and is also our newest Core Contributor, which is quite the accomplishment for someone who started out as a newbie when we initially took him home from the pound! Hope you guys enjoy, and we’d love to hear your suggestions for the next developer to interview for the series.

TurtleEDU: Intro to Git

TurtleEDU: Intro to Git
The second class for TurtleEDU is ready, this class has Intro to TurtleCoin as a prerequisite, so make sure you’ve taken that first! It covers introductory Git usage which should make you qualified to be a Contributor or Developer if you’re interested in learning.

In this class we create Turtle’s Pizza Shop and use Git to store our pizza recipes in a repository to share with our friends. I think you’ll like it!

Image result for the jeffersons moving on up
Congrats to everyone who levelled up this week 😀

Moving Up!

It’s always good to be recognized! These are the people who gained new roles in the community this week!

Footclan – Iburnmycd

Developer – Mufalo

See the source image

Good First Issues

Good First Issues are tickets that are marked as ‘easy wins’ for new developers. If you want to be a TurtleCoin Developer, these are great tasks to start with!

Shoutouts & Thanks

This is the place to mention someone in the community who has done something nice or deserves recognition.

rock – “Such thoughts were noted, tucked away, and you know, forgotten” looool ibmcd

rock – shout out to sisyphus and ibmcd for helping me with the course and quiz content for Intro to Git

Zpalm – Shoutout to fexra for another project started

Japakar is the best in the west of china. – Thanks community and individual members! You all make this place the best!

Weekly Update

This Week In TurtleCoin (May 20, 2019)

This week we became car salesmen and tore the blocks up with all the code and project updates, you might want to put a helmet on, we’re going in deep!

Pictured: The Developer known as TurtleCoin

Developer Updates

Git 101 on TurtleEDU

Git 101 on TurtleEDU

This week I finished just about all of the Git class for TurtleEDU. This is step 2 of 3 in our mission to turn newbies into knowledgeable users and knowledgeable users into content contributors. After completing the git class you’ll be ready to get your pink Contributor hat in Discord by getting your first pull request merged for something like a wiki article or guide. Git is a very important tool for our work flow and is an essential skill on your way to becoming a developer contributor! Check it out when it’s ready, and in the mean time, take our TurtleCoin 101 class while you wait! Big thanks to sajo for building a git terminal simulator using Xterm JS. RockSteady

https://edu.trtl <- visit on the TRTL Network!

Checkpoints on IPFS


Lately we’ve been putting some works on integrating parts of the sync process with IPFS. IPFS allows us to store large files and share them easily, in this case, the checkpoints file was causing github to stop processing them, so while IBMCD worked on getting the checkpoints split automatically, we got them stored on IPFS. RockSteady

IPFS Gateway

IPFS Gateway

If you haven’t heard of IPFS yet, you’ll be hearing more soon. I’ve been working with it a lot lately as a storage network for TRTL, and have already got checkpoints being stored there for use with our daemon.

This here’s an IPFS gateway we’ve built so that you can fetch files from the IPFS network, in this case, you can grab the TurtleCoin Network checkpoints file with ease, all in one file. Use the URL of the gateway as a prefix like you would to download a file through the TRTL Proxy or the IPFS checkpoints. RockSteady

TRTL Proxy

TRTL Proxy

You might not have heard, but we have our own .trtl domain service now so you can have a cool domain like fexrasbaby.trtl ( more details at Most people need a browser plugin to browse the TRTL Network but now you can just put in front of the url to see what you’re missing without the extra hassle of installing a plugin! RockSteady

86 The Roadmap

Proposal: 86 The Roadmap

We have so much going on now that there are much better things that deserve to be on the roadmap. The current roadmap is fine, but they’re all distance objectives that require other small incremental changes to come to fruition, so while they’ll still happen it just makes us look immobile.

Hard work goin down round these parts, don’t get none on ya

Originally I proposed that we replace the roadmap with a timeline, with the timeline being a chronological list of launch dates of products we’ve shipped. I don’t think that’s a good idea anymore because it’s hard to say no to well-deserving smaller products that don’t necessarily have the same “visual punch” to their product as other launches. This doesnt mean that they’re insignificant, it means that it would muddy the water when it comes to knocking a first impression out of the park when it comes to what 2 or 3 links a new user clicks. In addition to this tragedy-of-the-commons, we have to be mindful of page load time. Our page is a pretty hefty pageload and I would love to get that down.

So, in the spirit of being the project that doesnt follow in the footsteps of others “come on guys, it’s crypto, you have to have a roadmap and btctalk ann” I say we just get rid of the roadmap and look at doing a “gallery” page that’s an evolution of the ‘timeline’ idea, but abstracted to a page that is off the main index page, but still linked from it. My reasoning for this is that someone who’s interested enough to click our app-gallery link is sufficiently interested to take a minute and click around if we give them a sufficiently fluid browsing experience.

An idea for the timeline is to keep everything purely chronological so that no feelings are hurt, and the most recently updated projects are always ‘features’. This gives incentive to make product launches frequent to keep your name/brand/product at the top of the featured spot.

Let me know what you guys think. RockSteady

TLD Chatops

TLD Chatops

We’re working on a bot that lets a user sign up for a .trtl TLD domain name from in the Discord. So far a lot of people have come to my rescue to make sure I don’t give birth to skynet accidentally.
Currently the bot validates that you’ve used the correct number of arguments in the command, and the correct type of domain record (thanks IBMCD). Currently the syntax it’s expecting looks like this .trtl register A mysite.trtl
Fexra is helping us take it the next mile by adding a few other things to the validation scheme. We hope it will be operational soon and be able to do things like manage recurring annual billing and updating the github records when someone changes a subdomain or adds a new record. RockSteady

TurtleCoin GitBot

TurtleCoin GitBot

A (long) while back, Rock mentioned how cool it’d be if you could make an issue on a github repo without having to sign up or log in; it’d make it a lot easier for new turtles to make bug reports without signing up for another service. I jumped upon the idea and started making the bot. However, it just wasn’t going good; code looked bad, it was long, inefficient and just didn’t work well. I abandoned the project. A few days ago, I started reading through the docs for the api (whose rewrite finished and fully launched), and discovered a lot of cool stuff which I had ignored the previous time. Additionally, I had learnt a lot in the months between. I started rewriting the bot, focusing on making the code cleaner, look better and making it work more efficiently. So far, I’ve made the basic discord bot, and finished the part which takes in your input for the repository name, and checks if it’s valid. There’s still a lot left to go, but I’m excited to see the bot finally come to fruition!

Update: The bot is done! I poured some time into it, and finished it a lot faster that I expected! The bot takes in user input for the repo name, issue title, issue body, confirms the detials, then creates the issue and returns the link. It’s currently active and can be called by saying “.git help”. I’m super excited for this, and hopefully you all like it! I haven’t implemented a lot of error handling, so if it ever spits out some error then ping me and let me know. Sajo8

CantiLib / CS-TurtleCoin

CantiLib / CS-TurtleCoin

Look at me go, I’m actually putting something in the roundup this week! :t_franklin: This week, I put in a bit of time to re-write a lot of the CantiLib / CS-TurtleCoin code that I was never quite happy with. I’ve begun re-writing the P2P back-end, rewrote the entire class that helps serialize and deserialize the packets sent between nodes, and I’ve begun to do further work on deciphering the skynet speech our daemons talk to each other through. Once I hammer out a few more details, I’ll be pushing an update to the dev branch on GitHub. Slow and steady! Canti

Wallet sync speed improvements

Wallet sync speed improvements

After I mentioned a couple of weeks back, I was investigating rewriting the mobile wallet in C++ for improved sync performance.

I did some more tests and improvements on the C++ code that zedwallet-beta/wallet-api use, and this potential C++ mobile wallet would use.

To begin with, I added block prefetching. Previously, the code would download blocks, process them, and repeat. This causes a delay where we’re waiting for blocks to be downloaded, and not processing anything.

We can alleviate this by using another thread to download blocks constantly, while the main thread processes all the already downloaded blocks. If we can download blocks faster than we can process them, we should see some decent improvements in sync time.

The JavaScript backend already had this, but it was a lot easier to implement, due to JavaScript being single threaded. The C++ code required a lot of thread safe code to be written, which is never fun. Surprisingly, it seemed to work first time! (Fingers crossed).

After some tuning and bugfixes, I did some performance tests, comparing different wallet backends. You can see the results in the first picture. The code changes I made improved the syncing speed from 62 blocks per second, to 312 blocks per second, a roughly 5x improvement!

I have also been doing some work on multi-threading the sync process, but that’s not finished yet, so I’ll leave it for next weeks roundup. Zpalm

Rig Of The Week

Name: “Lil Crack Hoe”

I just finished bringing up a RX580 in a Dell 2U 815 Server lol. I’m surprised all this works. I had to hack into the 1100W PDU board in the server and make some power take offs to power the GPU and I had to hacksaw the GPU a little to make it fit, I spent probably 5 hours today trying to get it all together so here is the first test spin!

If your operation exists on an industrial scale, just drive a combine harvester through the field! I spend my day employed as a RF engineering technologist and over the course of 3 years have built a variety of different miners using x86 based architectures running both Linux and Windows mining tools. Over 30,000 (31,000 avg)

Buy This With TRTL

giving this new section a shot, let us know what you think

Weebles wobble but they don’t fall down. – Iburnmycd

Turtle Advertising

  • CuvéeARM TurtleCoin pool for you! Uptime 2 months, 112 blocks mined, low orphan rate (5.66%), always on and friendly support by @LeoCuvée on the TurtleCoin Discord or via Twitter @CuveeTrtl
  • CuvéeARM TurtleCoin Public Node for sending your large amount transactions. Low power consumption. Powerful. Reliable. Just of you. 1900 TRTL fee per transaction.
  • nical but its nice to see comparison, on that page is also links to what I have so far of GPU and CPU rates. 🙂
  • Looking to compare your hashrate to similar cards or processors?! Enter your info here and view others! Thanks so much!
  • Mine2Gether’s android mobile miner! Give it a try, make mining with your phone easy! Direct to mine2gether pool. – japakar
  • Been tempted to try our TurtleCoin+Loki psolo mining pool, but scared off by the long time to earn a full-block’s reward? Well fear no more!! Activate our PPROP payment scheme and most any miner will see TRTL payouts at least every 1-2 days. And all with NO fees. Cryptonote.Social: where all rewards go to miners.
When you hear about “banning bad nodes” be sure to ask what makes a “bad node” vs “bad code”

Good First Issues

Remove no longer relevant asserts (turtlecoin/turtlecoin)

Since pretty much everyone runs the daemon in release mode, instead of debug mode, we’ve ended up where we have a number of asserts which constantly trigger, due to altered/moved/rewritten sections of code.

We probably want to remove or update all these asserts to ensure they are still indeed checking things which should be ‘impossible’.

It would also be nice to add more assertions to new code.

I’m not aware how many asserts there are in the current codebase, but it would probably be a good idea to separate this into multiple PR’s for ease of reviewing and testing.

Add type assertions for JS users (turtlecoin/turtlecoin-wallet-backend-js)

Currently you can pass incorrect types to functions without it throwing. This usually causes hard to diagnose errors. We should add assertions to check each type is as expected, and throw if not.

I think we have lodash as a dependency already, they might help with some of the type checks.

Shoutouts & Thanks

  • greywolf thanks to all the developers working their asses off in the #dev channels, really behind the scenes to the average user. it’s fun to watch them collaborate on different things in our open atmosphere. well, at least it looks fun to a non-developer. of course, i gotta duck now and then when things start getting thrown around a bit, but it always settles down and is worth the reading.
  • greywolf thanks to Sierra for always bringing joy and sunshine with her.
  • Japakar | dont forget! submit your cpu/gpu hashrate/lower power setting/thread count and whatnot! 🙂
  • Dreday000 Shout out to the TurtleFam !! Just a chill friendly community!
  • Sierra I wanna just let everyone know I love them and they’re awesome! I pray for yall all the time, sometimes I forget but I’m always thinking of you!
  • @Mrlahaye “Thanks to @Fexra for buying my PS3 on the #merchandise channel in discord. The TurtleCoin discord is the best place to sell your stuff!!! I’ve been looking to sell this package for months now 🙂 By the way, we’ve got plenty of stuff to sell, please come check it out!
  • RockSteady Shouts out to SoreGums for the help with the proxy and the cool address tester!
  • RockSteady proud of bebop this week for getting on his pushups
  • RockSteady Shoutout to the IPFS & Epona devs for their warm welcome to TRTL, we look forward to building cool things with you and helping the IPFS network
  • RockSteady Thankful for everyone out there who’s registered a .trtl domain and helped us test out the automation!
  • RockSteady “Thanks to Thinkpol2 for the help with the DNS automation I was working on, you made it way better than it was.
  • greywolf thanks to Japakar and anəki for the hashrate collection forms you guys worked on
  • Japakar is a cool dude! Thanks to Turtle Community for being one of the best! Always fun to be around 🙂
  • greywolf i wanna thank Sierra for continuing to be a continuous ray of sunshine in a sometimes dreary environment. muah
  • greywolf and the realist moniker goes to … zpalmtree
  • Japakar Thanks so much for the help anəki#0705 !!
  • Japakar Thanks to Rock and the community! 😀 Cause you’re awesome. I even punctuated correctly! srs bsns!
  • Frodo i love turtlecoin <3
  • greywolf i wanna thank Japakar for keeping the homeless beggars away from my turtles.
  • Anonymous What happened to Teacup and the chat history?
  • greywolf i would like to recognize LeoCuvée’s positive effect on the active community. he’s very helpful in many areas and shares his knowledge in a way that is easily learnable. oh yeah, he’s a polite dude, also.
  • greywolf (sorry for the overload of shoutouts this week) i am very happy that Sierra is back in the community. she brings a completely different perspective to the group, and she can certainly cause a spark in a sometimes otherwise same-ole-chat-as-usual conversation.
> When it’s 3AM and people are making meta threads about banning nodes for using the network as intended.