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 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 http://checkpoints.turtlecoin.lol 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.
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.
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.
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 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. RockSteady https://blog.turtlecoin.lol/archives/extrahash-interview/
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.
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!
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
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
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
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 dns.turtlecoin.lol) Most people need a browser plugin to browse the TRTL Network but now you can just put https://proxy.turtlecoin.lol in front of the url to see what you’re missing without the extra hassle of installing a plugin! RockSteady
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.
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.
We’re working on a bot that lets a user sign up for a .trtl TLD domain name from dns.turtlecoin.lol 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 126.96.36.199 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
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 discord.py 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
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
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.
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
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
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 https://publicnode.ydns.eu/
CuvéeARM TurtleCoin Public Node for sending your large amount transactions. Low power consumption. Powerful. Reliable. Just of you. 1900 TRTL fee per transaction. http://publicnode.ydns.eu:11898
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. https://cryptonote.social/trtl
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.
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 | turtle.japakar.com: dont forget! http://japakar.com/christmaslist 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! https://discordapp.com/channels/388915017187328002/410839969427357717
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.