Categories
Weekly Update

This Week In TurtleCoin (April 28, 2020)

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.

turtle.army explorer

turtle.army Block Explorer

Hey guys. I’ve made a new block explorer, just for fun. This one utilizes the excellent turtlecoin-utils library to scrape the blockchain from the daemon and stores it in an sqlite database.

Yes we are going to run sqlite on a web app, and we’re going to like it.

It’s still syncing now but maybe in a week or so it’ll get there (lol). I’m considering launching a full suite of TurtleCoin related tools on https://turtle.army for the community to use. Anyways, check it out and let me know if you have any suggestions (or pitch a hand and help!)

ExtraHash

https://turtle.army

Have you seen the new website yet?

Add translation feature to TRTL2020 Website

Hi Turtles!,
Today I decided to try and port the new Turtlecoin website from html to Jekyll so we can add translations, it took a few hours but it is done and fully working!.

I am also offering a bounty of 500 TRTL for every translation submitted.

The site is very clean and lean and only has about 3 sentences to translate, it’ll probably take you a few mins.
Checkout the repo to see instructions on how to submit your translation and @me on the chat when you do the PR so I send you the trtl

Special thanks to Rock for the help and @Sythe<3#9999 for trying to do it before me and giving the inspiration.

@Turtle Max#3183

https://github.com/turtlecoin/trtl2020

Brazilian Portuguese translation

This project intends to translate the Turtle 2020 website into Brazilian Portuguese (for this, proofreaders are required for the translation, allowing it to be approved by the community) and thus integrate people from Brazil and Portugal into the project.

D4rkGh0st/MrLupus (Discord) and D4rkGh05t (Github)

https://github.com/turtlecoin/trtl2020/pull/2

Karai Website

I did some work on the marketing page for Karai.io. At the moment we don’t have a whole lot of content, and a lot of that is due to me spending most of my free time after work coding on go-karai, the Golang Karai implementation.

Eventually I’d like to get either github wiki’s working or some other documentation style website set up to share code snippets and API notes for Karai like we do with TRTL stuff and then link to that from the marketing page when someone clicks dev-related links.

Some of you asked to help out, so I’ll be putting this website up at https://github.com/turtlecoin/karai-website if anybody wants to help out or make modifications.

RockSteady

https://github.com/turtlecoin/karai-website

Karai REST API & Ephemeral Metadata

REST-API: I added a REST API to the go-karai client as part of the pointer process. That doesn’t mean a whole lot if you aren’t familiar with the terms, but what it does is provides an endpoint so that when someone finds a Karai pointer transaction on the TRTL chain, they ping the endpoint and receive a peer ID from the endpoint. That peer ID then helps you get connected to the peer swarm, kinda like the way a bit-torrent magnet link works.

Ephemeral Metadata: While we’re on the topic of headers and addresses and such, much work this weekend was put into the scheme by which we tell transactions how they’re ordered and what other connections they’re linked to. The ephemeral metadata field is a non-hashed field, which means transactions while in-formation have a degree of malleability with regard to their positioning in the graph, hence the descriptor ‘ephemeral’. This process is achieved by non-hashed ephemeral metadata fields that exist in several forms:

  • the milestone ephemeral data – A milestone that is -1 from the existing milestone tip will index the peer participants and subgraphs it has transactions for. This speeds up syncing and allows a short path to syncing just the transactions belonging to you.
  • the wave tip ephemeral data – One step down from milestone transactions are Wave Tip transactions, which are the first transactions in a listen interval who hold the transaction positional metadata for the subgraph below them.
  • transaction ephemeral data – This metadata stores the answers to such questions as – who is my parent, who is my neighbor, who is my wave tip, what milestone are we on?

If some of this sounds kinda weird to you, it’s okay, it’s weird to me too and I’m mainly the guy building it. In short what we’re building is different from something like a blockchain where each block has a block before it and a block after. Karai doesn’t have blocks, all transactions stand on their own, and they can have neighbor transactions linked above, below, and to the left and right, which forms a fractal shape (Karai is a directed acyclic graph).

On its own it sounds like a nerdy thing to get excited about, but it’s a step up from where we are with TurtleCoin, Ethereum, Bitcoin, Monero and other networks where downloading and replaying every single transactions regardless of which ones are yours is the norm. Time will tell.

Karai Transaction Store on IPFS

Last week I built a function that takes all of the JSON object transactions in the graph folder and puts them all on IPFS and reports the content ID hashes back to you. I was able to ID 1,000,000 transactions quickly but it was not as fast as I’d liked.

That got me thinking.. How much really needs to happen to these transactions while they’re in-formation (this is what I’m calling the state where the transactions are still being interlinked by the coordinator node) that can’t wait until after the listen interval has concluded?
I think what I learned from my experience is that I should batch the transaction objects somehow and address them in chunks to make the process faster, and that this process of addressing and pinning the transactions should happen after the formation of the transactions has settled, because otherwise it’s just doing too much at once.

Regardless, the test was a success! This coming week I’ll be spending my free time after work and during lunch checking out the various graph-visualization libraries out there to work out some type of explorer-like representation of the transaction waves. I hope I come up with something cool, I ran across a lot of great examples for directed flow graphs.

go-karai terminal client for Windows/MacOS

With the help of Rashed, we got the build pipeline created with binaries generated for every release of go-karai on Github. We generated a few test releases (sorry for the noise if you subscribe to updates) and everything compiles as expected. Currently we’re having two issues I need you guys to help me with.

  • I use a lot of color in the terminal interface for Karai, it works on Linux just fine, and in Windows it looks fine if you use GitBash or Mingw64 as your terminal, however `\033&1;33mIt looks like\033&0;90mthis \033&1;33mfor everyone else if they use powershell or windows cmd. Those color codes don’t get interpreted correctly. I tried a few options, and unfortunately could not get it working. If anybody wants to give ANSI 8 bit terminal color in windows a shot, by my guest
  • MacOS is compiled, however I’m a brainlet and have never, to this day, got MacOS running in VirtualBox, and don’t own any MacOS hardware. If any of you run whatever the accepted ‘current stable’ version of MacOS is out there, please give go-karai compiled binaries a shot and let me know if you see color at all. Just run ./go-karai and hit enter a few times and if the text is white and green or something similar, it worked. Thanks!

Rock

https://github.com/turtlecoin/go-karai

TurtleCoin Vanity Address Generator (usage tips)

Last week I was shootin the shit with our resident cubist and expert in anything related to colored-squares, Professor L, and was talking about generating vanity addresses for TurtleCoin.

What the hell is a vanity address, you might ask. Because you’re a strong man and vanity is for puffs who wear skirts and lipstick right? WELL. Let me tell you, it’s pretty fucking cool and actually +10’s your manliness with a cool wallet address like TRTLv1rockiQcRbC5TB5VAKgVdr3sXqxN8r1q89JKNB5ZJgQYNjoanZgrGiLUaRKLUZXf8FSCgoaudiHwPZVcAqH1Y4QnjC2puE

The vanity address generator has actually been in our repos since the wee early days of TurtleCoin, written by one of the earliest botmasters, MoonMoonDoggo, who also wrote the Rain Bot (or roach bot depending how you felt about it). The generator was written in a compiled language called ‘Nim’ which allegedly is pretty cool according to the sadists who practice that type of witchcraft. I guess it never got the attention it deserved, and when I was reminded of it, I wanted to generate some addresses.

https://github.com/turtlecoin/turtle-vanitygen

As I downloaded the source code and sought out to compile it, I ran into a big snag. When I say that Nim is some type of voodoo sorcery, I mean the error this thing shat out into my terminal was so cryptic and arcane, I felt like the compiler had just thrown a glove on the ground at my feet like “I fucking dare you, nerd *compiler puffs chest*”. I tried and tried, couldn’t even google my way out of a paper sack that night, but there was a clue. Professor L said that it compiled successfully on a version much lower than the one I had, like comparing 0.17.2 to 1.2.0 or something.

https://nim-lang.org/

If you run into these crazy errors, I found the solution. Use a tool called ChooseNim and downgrade to version 0.17.2

https://github.com/cloned2k16/niMan

Also another note, you might be tempted into thinking, “hey what if I open 8 of these windows and do it 8x as fast”, it’s not going to work like you think it will. As Zpalm pointed out, it’s already seeing how many cores you have and running accordingly, and you’ll notice if you run htop while it’s going it’s using 100% of each core until it finds an address that conforms to the prefix you gave it.

It takes only a few minutes to find a prefix with ‘rock’ in it, but so far haven’t been able to get ‘rocksteady’, it is exponentially more difficult with each letter you add. Let us know if you generate anything cool!

Rock

Moving Up!

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

Core Contributor: LeoCuvee#1481

Developer: Turtle Max#3183, LeoCuvee#1481, Buggles#5389

Contributor: Alien#5919, Savon#6826

PR Guerilla: Kinjo#5916

Mining RigOZ v001 by Yurii

Rig Of The Week

Do you have a TRTL mining rig you want to show off? Tell us about it!

Rig Description: x5 RX550 2GB, modded bios, downvolt, 355W on CHUKWA
Secrets: “Just keep mining lol :)”

Hashrate: 140 KH\s on CHUKWA

Free Advertising

This is a spot to spam anything TurtleCoin related that you would like to advertise, it’s free to put an ad in the roundup.

Sync faster with bootstrap powered by bot.tips. Bootstrap data is regularly updated.https://trtl-data-dir.bot.tips

Shoutouts & Thanks

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

MadkShoutouts to mc.evilma.id – the unofficial Minecraft server of turtlecoin.
greywolfthanks much to zerouan and brätövenhürt for the lively DJ talk show while hosting karaoke
zerouanthanks yall for supporting vision street wear, lilly meraviglia and not eat any pineapple pizzas
dsanonshout out to rock for all the hard work on karai! :DD
Categories
Weekly Update

This Week In TurtleCoin (April 22, 2020)

Pictured above: a Monster Energy Drink molecule

This week we wrote code with our eyes closed and everything still compiled. Lightsabers are in the mail!

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-wallet-backend

This week I upgraded turtlecoin-wallet-backend to use the 2.0.0 rewrite of turtlecoin-utils. Along with providing a much improved TypeScript interface, this will prep turtlecoin-wallet-backend to be ready for any interaction with Karai, as turtlecoin-utils will provide an easy interface to parse out a Karai pointer from any transaction once we have finalized how we want to store it.

In the process, I also found and fixed a small bug where disabling auto optimization would not work correctly.

Zpalm

https://github.com/turtlecoin/turtlecoin-wallet-backend-js/tree/development

Karai Is Solving The Scalability Problem

For those of you that know the name but don’t quite know what it is, I’ll give you a quick pitch on what the Karai project is, and how it relates to TRTL:

Background: Karai started out as one of the early milestones we had with a goal of providing a sidechain to store Ethereum-like smart contracts for the TRTL Network. At the time the approach we were planning to take was all wrong, we were going to launch a single sidechain, with its own currency, using the same linear blockchain software as TRTL with the same inherent drawbacks compounded by the need for extra storage. The headaches were already stacking up and that was not even considering the work that would need to be done to allow people to program their own applications on this thing or be anywhere near up to par with Ethereum, which was a lofty goal at the time.

Fast forward: About 2 months ago, as our core software started reaching a point of relative stability we had a moment to step back and look at other initiatives to do some of the much-needed conceptual work we used to do with our free time. As luck would have it, conversations naturally resumed about a new way of implementing Karai that would address some of the concerns we had about our initial approach. Let’s summarize what some of those issues are:

  • A side chain only prolongs the bloat problem – If spam attacks have taught us anything it’s that if there’s a globally shared asset within easy reach of the masses, someone’s going to put a goatse on it. If you have to sync through the entirety of historic data on-chain from the birth of that particular blockchain just to sync to some data from last month, that’s a problem that gets worse every block whether there is a transaction in them for you or not. Any network with sufficiently fast blocks (like TRTL) and a singular linear chain of blocks will face a problem with scanning and storage eventually.
  • Yet Another Token Syndrome – Karai originally was intended to have its own native coin that was pegged to the value of TRTL to act as ‘gas’ for computation on the Karai sidechain network. The balance between the two plus the third element of relying on merge mined hashrate was a precarious balance and any ability to destabilizing any single element of that would spell disaster. Any sidechain with its own native currency will experience this issue. There is also the issue of token-fatigue which anybody not new to the scene can elaborate on.
  • Linear Blockchains are slow – Trying to use a linear blockchain for high transaction volume is a nightmare, because the shortest route between A and Z will always be touching every letter between along the way, A, B, C, D, E… Because of this, Bitcoin does less than 4 transactions a second, Ethereum does less than 20 transactions a second, and for comparison, the VISA network claims to do less than 2000 transactions per second..

While we are spelling out a list of our gripes trying to implement smart contracts on a sidechain using conventional means, we might as well address how the new plan solves them.

https://i2.wp.com/media.discordapp.net/attachments/453726546868305962/702672129845493790/unknown.png?w=580&ssl=1
Diagram of Karai’s transaction graph
  • The Sidechain Problem – Karai transaction channels are numerous and not required to be part of a single sidechain. Another technology using this concept might be familiar to you is Lightning Network technology. In the case of Karai, a new user can connect to 1 channel or many channels, and only has to interact with the history of the swarm they’re connected to. Private and unknown Karai networks are possible by default, the main chain doesn’t have to know.
  • The TurtleCoin vs A 2nd Coin Problem – Maintaining a secondary asset would fracture the community’s trust and development capacity while also dividing the loyalty and demand between two assets. It’s also a rule of thumb that anything you assign monetary value to will be subject to manipulation and attack with a financial motive. The world does not need yet another token.
  • Linear Blockchains are slow – Karai is a directed acyclic graph, where there is no single line of blocks to traverse on the path from A to Z. Another network using a directed acyclic graph (or DAG) is IOTA which some of you may know as being particularly fast and unique in the structure in which it arranges blocks. First we should cover that Karai doesn’t have blocks holding the transactions because transactions are independent objects, and it also doesnt have a block interval where empty dust is being produced and recorded for no reason while waiting for transactions.
    A person connecting for the first time wouldn’t need to pass from A to Z in the transaction history by going through every node A, B, C, D, and so on but instead take only a few hops to scan to the tips of the graph.

With this in mind, last week when I started prototyping some of the code written for the transactional side of Karai, I made a boastful assumption that we could hit a target of 10,000 transactions per second.

I’ll admit that before I was able to write a benchmark or even write a transaction creation method for that many transactions I was already a bit skeptical if I’d just put my foot in my mouth.

Initially when I wrote the benchmark, it was fairly unoptimized, and the way I was creating the transactions and timing the execution of them was a little computationally wasteful, so my first benchmark indicated I was doing 10,000 transactions in a little over 2 seconds. It was disappointing but also inspiring to have a goal to aspire to. It didn’t take long, but with the suggestions of IBMCD and Z, we were able to make some significant improvements in a single night.

We’ll just come out and say it. We hit 1 million (1,000,000) transactions created, processed and recorded to HDD in under 1 second. This was with a single threaded benchmark using a Ryzen 1800.

As a disclaimer, It’s important to note that in this benchmark we’re not sending any of these transactions over the network, they’re all transactions being created from and processed on the channel coordinator and saved to spinning disk. It’s likely that when we introduce network latency we will incur some slowdown to this number. That being said, these are impressive numbers. Let’s talk about how we derive those numbers.

https://cdn.discordapp.com/attachments/453726546868305962/701964445378674708/unknown.png

The process, For each of the million transactions, constructed an object consisting of the transaction type, the current hash, the ancestor’s hash, and a JSON object containing the transaction’s own graph position in it. This is a fairly small transaction, but not empty.
Each transaction generates a separate JSON file on disk containing the Tx data we just covered. The hard drive it was stored on was the same hard drive it was run from, a Western Digital Red 8TB drive. All of this Tx data is then hashed with SHA256 and the process repeats for the next 999,999 transactions.

Interesting details, In the process of doing the first benchmark of 10,000 transactions, we noticed that while using the terminal screencapping tool “Asciinema” we were running into the framebuffer becoming our bottleneck with the transaction finishing in 5% of the time it took to render the output to the screen. This was one detail that initially skewed the benchmark readings significantly. Another interesting tidbit we learned is that if you suddenly generate 1 million files into the same folder, two things happen: Git will display a notice that your project can no longer be tracked because it has exceeded the number of files it can watch, and you’ll no longer be able to rm Tx*.json the files you just created because the list of files to be fed into the rm command will be too big.
Other things that crashed were my file manager, the game I paused for the benchmark, the YouTube video I was watching, and Winamp.

I think Winamp just wanted to crash for old time’s sake and should be treated as unrelated.

https://cdn.discordapp.com/attachments/453726546868305962/702031763970588742/unknown.png
Extras pointer collection service

Also, we figured out how the pointers work from TRTL Network to a Karai transaction channel, and stored a few of them on the TRTL blockchain already, you can check them out on the official Karai Explorer which Extrahash has been making to scan and track all of the Karai channel pointers he can find in the TRTL blockchain and catalog them with some basic data. It’s really cool, you should check it out.

I’m making progress on cleaning up the code base to get it ready to share on Git, it’s written in Go if anybody is looking for something new to learn and want to help out. My current goal is putting the DAG tip selection algorithm into code prototype stage, which shouldn’t be that bad given the speed of current development.

See you next week!

https://karaiexplorer.extrahash.org/

Join us in #Dev_Karai in the Discord if you have any questions.

RockSteady (TRTL)

Moving Up!

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

Karai Dev Role – Extrahash, RockSteady, Zpalm, Ibmcd

Shoutouts & Thanks

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

  • Madk Shoutouts to mc.evilma.id – the unofficial Minecraft server of turtlecoin.
  • greywolf thanks much to zerouan and brätövenhürt for the lively DJ talk show while hosting karaoke
  • zerouan thanks yall for supporting vision street wear, lilly meraviglia and not eat any pineapple pizzas
  • rock thanks to everyone helping me out with karai, the website, and any of the other irons in the fire we got goin right now

Categories
Weekly Update

This Week In TurtleCoin (April 14, 2020)

This week we let Jesus take the wheel as we mashed autocomplete on an iPhone 3G until this issue of the roundup was written..

TRTL Movie Night soon on DJ3d.io? Sound good? Let me know what you think in the chat.

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.

trtl-py on pypi.org

trtl-py is a JSON-RPC Wrapper for TurtleCoind and Wallet-API. I’ve been working on the project since a month, and it’s my pleasure to announce that it’s ready, and out to be used. Would love reviews, suggestions and feedback on the wrapper. I’ve spent a good time documenting everything and providing examples of every method. I hope you’ll like the project and am looking forward to your views on the wrapper. Have a nice week turtles! 🙂

sohamb03

https://pypi.org/project/trtl

https://github.com/sohamb03/trtl-py

https://trtl-py.sohamb03.me

Welcome back IBMCD from his 90 day program, bravely overcoming his battle with Pokemon Go addiction.

Long time, no update from me. Let’s fix that.

Crazy times we’ve all been in the last few weeks. Disrupted schedules, focus changes, priority shifts, you name it. Personally, my days are filled with video conferences and my nights are oft left wondering what the other side of this fiasco looks like. There’s a lot of uncertainty floating around out there and I wonder where I can use my talents to shape the world around me. New problems require new solutions and there’s more than enough problems to go around.

I, for one, have many pans in the fire and wear many hats to say the least. I’m still working on building out full multisig support for the core software but that takes time and focus that isn’t easy to come by when each day is more mentally draining than the last. Instead, I find myself thinking about different use cases for the technology I’ve learned so much about through this community.

Using the technology as method of funds storage and transfer is a use case that works well. Smart contracts, great, okay, sure. Distributed processing, yeah, I can get behind that. What else can be done with the core technology though? Where can blockchain be used that hasn’t been tapped yet? What real world problems can the technology solve that isn’t ultimately throwing the blockchain buzz word around systems and processes that work just fine how they are? There has to be something more than currency and asset tracking that comes from this.

I’ve been tossing some ideas around the last few weeks, quite often while in the shower. There’s nothing solid in my mind yet but parts of a bigger picture are starting to come together. What that means, I can’t say. It is; however, a chicken and egg scenario. I have to be careful not to create a problem to fit the solution I have forming. To do so, will ultimately lead to its own demise before it even gets off the ground.

Til then, I’ll keep chugging away, working on things that make sense to me given the current world stage by keeping my focus where it matters most and helping those that are in desperate need of guidance. As time permits I’ll get back to churning out updates and code.

There’s plenty to do so if you’d like to lend a hand, speak to and I’m sure that I, or any other contributor, will be more than happy to point you towards ways you can help.

Oh yeah, almost forgot, I pushed a new release of turtlecoin-utils a few weeks ago. Now with full TypeScript support. Check it out :)”

IBurnMyCD

Support the advertisers below!

Free AdvertisingTurtleCoin public nodeFree Advertising

This is a spot to spam anything TurtleCoin related that you would like to advertise, it’s free to put an ad in the roundup.

  • Cryptocurrency TipBot for your discord server. Available with many coins including TRTL. https://discordapp.com/oauth2/authorize?client_id=474841349968101386&scope=bot&permissions=3072
  • Get Started Mining Today At MuxDux TurtleCoin Mining Pool https://trtl.muxdux.com
  • Telegram Cryptocurrency TipBot. Available with many coins including TRTL. https://t.me/teletip_bot
    check out the cool web page that my friend Muf made last year for my
  • TurtleCoin public node. check out the cool web page that my friend Muf made last year for my TurtleCoin public node. there is a button to copy the node’s address, a node online indicator, a current CMC snapshot, a TRTL to USD/EUR/GBP/BTC converter, the latest tweet from the TurtleCoin Twitter account, and a link to a video that i just discovered is broken (sorry, i’ll check into it). the node is located in Germany, and i try to keep it up as much as i can. ~greywolf https://TurtleNode.co

Happy Birthday Muf 🙂

Categories
Weekly Update

This Week In TurtleCoin (April 7, 2020)

Quarantine Isolation day 34: A prominent theory is developing that asserts ‘outside’ has simply been a simulation to distract us from our true goal of dominating the meme-coin arms race.

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.

TRTLApps.io

TRTLApps.io is a service I have been working on for the past few months which aims to make it easy for developers of apps and games to integrate TurtleCoin into their projects.

I’m not saying we have secret technology such as NipAlert, but I’m also not saying we don’t have it either.

The service is still in early development and not open to the public, but if you would like to experiment with the API ping me on Discord and I can give you an invitation code.

This past week I’ve been working on a better way for saving and loading the service wallet files to storage, which will allow for periodically creating checkpoints. If we detect that the wallet is in a bad state for any reason(missed transactions while scanning blocks for example), we will be able to rewind the last saved checkpoint we know was in a good state and rescan.

Big thanks to the devs in the discord channels for all your help and patience, and sajo for trying out the service with his game “”Chukwa’s Labyrinth””!

zoidbergZA

https://TRTLApps.io

ExtraHash

Hey guys. Long time no talk, it’s ExtraHash, your GUI wallet maintainer. Not a whole lot has been going on with the GUI wallet lately.. it’s basically reached a point of stability, where new issues aren’t really getting opened up, it seems like everyone is pretty pleased with it overall. So that’s a really nice place to be.

That being said, some things are going to be coming down the pipeline with Karai that I’m looking forward to supporting in the wallet and seeing what that’s going to look like. Additionally, I’m thinking it might be a good time to go for a redesign, since we redesigned the home page. Perhaps we might want to make the interface fit the new brand guidelines better and drop the moniker Proton once and for all, and just release as the TurtleCoin® wallet.

What do you guys think? Drop me a ping in #dev_marketing if anybody wants to discuss this further.

ExtraHash

Moving Up!

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

Contributor Role – Alien, Savon

Rig Of The Week

Do you have a TRTL mining rig you want to show off? Tell us about it!

Random found friend’s rig in our Prague office

Contributed by Olé Cuvée

Description: two RX580s with Samsung memory.

Secrets: add objects for drying, does not add to more hashrate, but makes the extra heat useful 🙂

We built a number of rigs in our Prague office, this one is a one of my friend’s 🙂

  • about 18 kh/s on cn-turtle, about 100kh/s on chukwa

Shoutouts & Thanks

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

  • greywolf thank you to these guys who helped along my journey in the land of TurtleCoin (i think chronologically): Ereptor, Turtle?, zpalmtree, Chef, auto-joe, cryptohno, labaylabay, Crappyrules, morpheus, Mufalito, Japakar, Rogerrobers, ExtraHash, Pluton, and LeoCuvée
  • rock Thanks to everyone who’s been helping out with this whole karai exit scam plan design scheme

A Bit Extra

Worth mentioning are the things that the TRTL community creates that aren’t necessarily TRTL related but still pretty cool. One that I’d like to show you this week is our resident audio-therapist, Oiboo. You might know him from such creations as Turtle Arcade, Turtle Simulator, and a big helper with Chukwa’s Labyrinth. This entire roundup was written with his musical works playing in the background, and I wanted you guys to check it out, he’s got a lot of good chunes for you guys to rock out to while you code.

If you don’t listen to the entire playlist, your mom will die in her sleep tonight.
Listen to these as well for extra TRTL vitality
Categories
Weekly Update

This Week In TurtleCoin (March 31, 2020)

This week we jumped on the LISP train so we can all start writing software the way the good lord intended.

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.

To submit your post, click this link

The New Website

Work is underway to convert the new website from a working concept to an i18n compatible, jekyll-based github static site like our current website on https://turtlecoin.lol .

Earlier this week a volunteer from the chat decided to start the process of porting the new website to markdown. What’s left is turning the various text blobs into mapped quotes for the people who make translations. We try to serve as many regions as possible in their own regional language, so a requirement to launch the new site is for the new site to be i18n ready.

If you’d like to jump in and help out, respond in this issue thread or ping me in the discord and I can get you started.

RockSteady

https://github.com/rocksteadytc/trtl2020/issues/6

https://rocksteadytc.github.io/trtl2020/

pictured above: Zpalmtree answering calls on the request line

wallet-api

This week I added a few new API calls to wallet-api that had been requested by devs.

The first allows you to retrieve all transactions that have a payment ID. This can be useful for people running services where a payment ID is used to identify accounts/users.

The second is along the same lines, but takes a payment ID and returns all transactions with that payment ID. This can allow services to easily retrieve transaction info for a single user.

Zpalm

https://github.com/turtlecoin/turtlecoin/pull/1048

Wallet-API Lisp

This project is a wrapper for the Wallet-API wrote in common lisp. It allows the user to implement wallet functions within common lisp.

I hope to further implement this wrapper in other projects with TurtleCoin and continue experimenting with the language. While experimenting I hope to see how well common lisp fits into TurtleCoin and the community at large.

spfcjic869542

https://github.com/turtlecoin/wallet-api-lisp

Karai Transaction Channels

If you’ve been following the conversations in #dev_karai over the past month, we’ve been conceptualizing how Karai should work. We’re working on a variation of an idea proposed by Fexra, which at the time was to implement Lightning-Network-like payment channels off-chain that are linked on the TRTL chain by simple pointers to the appropriate Karai transaction channel.

I had some spare time after hours and started working on the design and some experimental code for Karai’s payment channels component. It’s nothing worth pushing to the repos yet but should get there soon.

Currently the software can do a few things:

  • add and verify transactions on a local linear chain
  • create transactions that hold blobs of data
  • print the chain and associated hashes and stored data

It has a list of things it can’t do, but it’s coming together slowly but surely, and it’s a fun personal project to whittle on after work every day to sharpen my Golang skills. Things that took place last week that may have not been mentioned are just little things like assigning a license to the project (we chose MIT license), creating an IPFS peer identity for the Karai node, and some basic TRTL wallet api functions to create/maintain a wallet for paying or receiving pinning fees etc.

None of this is super significant, but I wanted to encourage other devs to move back toward the trend of posting updates for their projects that are in-progress rather than waiting on them being completed before posting. Writing about the process as it happens helps us to show the users that we’re always working hard, and makes them more likely to show up on release day or help out with testing.

RockSteady

https://github.com/rocksteadytc/go-karai

https://github.com/RocksteadyTC/go-karai/blob/master/docs/DESIGN.md

Moving Up!

Congratulations fellas

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

spfcjic869542 – Developer

Kinjo – PR Guerilla

Shoutouts & Thanks

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

Rock shout out to to the fellas with the hard hats on in dev_learning putting up with my retardation sometimes 🙂

Stop touching your face.

– Mom
Categories
Weekly Update

This Week In TurtleCoin (March 24, 2020)

This week we all came down with a bit of a cough in rapid fashion. In other news, we’re running out of Doritos, please send help. -TurtleCoin Dev Team

Video: An 8K hi-resolution Gource diagram of TurtleCoin developer activity in our core software repo from birth until 2020. Inhale deeply, sit back and turn on some Led Zeppelin or something, it’s pretty cool.

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 COVID-19 Relief Fund

As a followup to our previous TurtleCoin COVID-19 press release, I’ve been hard at work preparing a stimulus package and the means to distribute it to turtles in need. From the essential workers to the already infected, this bot will guarantee TRTL in your pocket despite the hard times.

https://i1.wp.com/media.discordapp.net/attachments/688916582994542682/692217084507324436/unknown.png?w=580&ssl=1

The attached image is simply a preview of what to expect. The numbers aren’t final and I’m looking for donations to fund this thing. Consider it a modified rainbot for our times. I’m putting 500k of my own TRTL in to start, but increasing the pot will increase the fun!

shoutouts to moonmoondogo.

madk bitch.

Blockchain import / export files

This week I have been experimenting with importing and exporting blockchain bootstraps. You can currently import the blockchain from the set of .bin files, but as I think I may have mentioned in another update, I’ve been working on removing those, to save hard drive space to store the blockchain.

technically this image is block-related..

Since the .bin files will no longer exist to be imported with, I’ve added a way to export the blockchain via the daemon, and subsequently imported again. It will also support exporting ranges of the blockchain, so you could, for example, import blocks 2 million to 2.2 million, if you want to catch up your daemon which is synced to 2 million and not have to download and import the whole chain.

Another avenue I’m interested in exploring is allowing syncing wallets via importing one of these bootstraps. This should be faster to sync than directly downloading blocks from a remote node, as there will be no database latency and no network latency.”

Zpalm

https://github.com/turtlecoin/turtlecoin/pull/1033

TurtleCoin.lol 2020 Visual Brand Update

A few weeks ago we got a suggestion to do a site redesign, and after a short conversation in #dev_marketing we had to agree, things were looking a bit dated. Since then, about a week so far, we’ve redesigned the main site and aren’t showing signs of stopping- we think you’ll note a few differences:

  • Instead of a road map or cute story about bebop and rocksteady’s drinking escapades, we now have a dynamic section with links to our most recent blog articles, most recent dev activity, and most recent issues that need helpers on GitHub.
    We think this is more potent data than what we had. With the dynamic data views we replaced it with we think it will show that we’re active and hope that it gives prospective developers and contributors an easy list for getting started helping us out.
  • We’ve decided to pursue a more modern and friendly visual theme than the cryptocurrency-hackery aesthetic we had before (which most of us also really liked). There’s nothing wrong with the look we had, but as we grow and look back, the rough-and-tumble aesthetic of our website very much reflected the state of the core software we had at the time, with all its flaws included.
    Since that time, we’ve chiseled the TRTL software into a solid peer2peer no-trust-required payments network sporting a new set of washboard abs. To signal that change to the uninitiated users we’re hoping to attract, we’re adopting a more unified and professional look to solidify our commitment to being a great payment network, not just a cryptocurrency.

With the new visual path laid ahead of us, we’re starting next on our Branding Manual PDF as well as our social media assets. Thanks to all the Turtles who contributed to the marketing and branding convo in #dev_marketing that inspired this change.

TurtleCoin 2020 Presentation Slide Deck

To best support this transition to a more ‘presentable’ face, we’ve gone ahead and made a new slide deck for TurtleCoin presentations which follows the same visual theme as the site. (Any aspiring brand ambassadors out there, feel free to use these to present TurtleCoin to your peers at any clubs or meetups you may have)

The brand new MIT-license-carrying slide deck style mimics the appearance and visual aesthetic of the new website, and presents some basic guidelines for assembling a visually pleasing and cohesive presentation. We’ll include picture previews below, and will provide the templates in PowerPoint, Google Drive, and PDF formats soon for you to make your own presentations at your local hackerspace or university.

TurtleCoin 2020 Website Preview

In researching the current top 100 currencies on CoinMarketCap, we noticed a consistent visual theme in a lot of the sites. Many of them stopped moving in 2018, about mid-February or March, and their visual first-impressions conveyed that message clearly like a crypto-geocities.

It became evident that our redesign should clearly communicate one thing- TurtleCoin keeps pushing forward, both during the hard times and the good.

The one and only RockSteady, Intrepid Author, Marketing Expert And Style Mogul extraordinaire

Our new visual theme conveys a welcoming visual appearance of an actual payment network like PayPal or Venmo with less emphasis on buzzwords and concepts that don’t matter. This approach of radical honesty sets us apart from the played out crypto-website trends of abstract-geometry javascript wireframe animations and mountains of jargon. Common frustrations in our research were that around the 40th website or so, it took so long to get past the marketing BS and slow page loads that we just closed the tab and moved on.

If you can’t serve a website that loads in under a second and can’t convey your message in the next 5 seconds, you’re not going to hold the attention of the minds of 2020*

*unless boobs are involved, in which case all bets are off..

We’ve got a more ‘tangible’ tagline now which says in plain, honest terms what we are, and prompts the user with a button to start a 3 step process to get started with using TurtleCoin.
The first panel presents familiar icons for a user to choose their operating system and it then downloads the correct software. They’re likely to need help, so in panel 2 we give them an easy list of our social media contact options so while they’re downloading the software they can easily get help or meet peers.
With the focus on rapid user conversion through providing a fast path to engagement, we’re trying to turn eyeballs into capable hands as fast as possible. Past interactions have led us to believe that the faster we give someone their own ‘piece’ of the community to manage and take leadership of, the more of a chance we have at keeping that person and marching them up through the steps of being a user -> helper -> contributor -> developer.
In panel 4, we’ve already been introduced, you’ve likely already started downloading our software and are probably chatting with us in the Discord, so your next question is naturally going to be “whats up with TurtleCoin”. Panel 4 has a list of recent community activity where they can quickly get a glance at the live updated stream of progress to get an idea of what we’re working on and what we’re offering. This is live data, meaning we don’t have to update this, the site does it all on its own. It will never be stale info.
Also of note: the last section there has technical implementation-level information a business would need to interact with our network or to communicate with our peers. It’s not only normal users and devs reading our site, a lot of exchanges list us without asking us for help, a lot of services do the same for what they build, and frankly they shouldn’t need our help with the amount of effort the community put into documentation that is so good it holds your hand through the entire process of building a web wallet or exchange or other service that needs to connect to our network.
https://i0.wp.com/i.imgur.com/s7X3cwe.png?w=580&ssl=1
Sajo8’s awesomely addictive game, CHUKWA’S LABYRINTH!

Chukwa’s Labyrinth

Hey guys! So you may remember the game I was making, Chukwa’s Labyrinth, from a LONG time ago. I started it last summer! Well, with coronacation going on now, I’ve found time I needed to work on it. The UI has been revamped and I’ve added bigger levels as well new powerups.

Additionally, I’ve integrated TRTL payment, so later on, you will be able to buy some DLC with TRTL through the game itself. Check the “”Buy DLC”” button in the Options screen to see more. Shoutout to ibmc and z for helping me, and to zoidberg for his great trtlapps.io service!

Of course, the entire game is open-source, and you can check it out at the links below. I will be releasing a full beta with 10 levels (albeit no DLC) soon, so you guys can try it out and provide advice for the final product.
I’ve been working quite a bit for quite a while on this project, and it’s exciting to see it reach near completion, and I hope you guys will enjoy playing it!

Sajo8

You can try out my game by downloading it from the following link:

https://github.com/Sajo8/chukwas-labyrinth/releases/tag/v0.2-beta

Other links:

https://github.com/sajo8/chukwas-labyrinth

https://www.turtlearcade.games/chukwa.html

https://github.com/Sajo8/netlify-express

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.

RochStetti di Medici Thanks to zpalm and iburnmycd for helping with the situation in #quarantine-general

RockSteady Thanks to Jerme for the bribes financial contribution

An update on #quarantine-general

Weird things have been happening to the people chatting in this channel. Users are advised to keep a 6 foot distance between themselves and any surfaces in that channel, and to wash your hands before, during, and after shitposting in there. There is a tangible risk, you’ve been warned!! bewaaaaare ooohh spoookyyyyy!!!!

Categories
All

This Week In TurtleCoin (March 17, 2020)

This week we stress tested the servers at Netflix from our couch-offices while we tried our best not to breathe.

Buggles was right.

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. To submit your post, click this link

Karai Development

This is going to be a long one, so, TL;DR – Karai milestone development started.

I uploaded a design-doc for the construction of Karai. It covers some of the basic theory for how the side-channels will work, based on an evolution of Fexra’s idea of Lightning-like off-chain channels discussed in dev_karai at the last meeting of the nerds about a week ago.

https://avatars3.githubusercontent.com/u/39613227?s=200&v=4

join the convo @ chat.turtlecoin.lol

The jist of it is, we’re using the TRTL chain to store small pointers linking to off-chain ephemeral scripts and content with their own associated transaction channels. These channels carry the history of their user’s interactions with the scripts. The channels are interesting in that they’re made to be hosted by anyone, have transactions instead of blocks, and have a higher capacity for transaction throughput than a normal blockchain. The advantage in the no-blocks-no-chain setup is that if we’re only generating transactions when something actually happens, we can have a very efficient mesh of interconnected transactions in a stream that widens and shrinks according to user volume instead of a single chain of blocks.

Some areas we are still discussing that can use your opinion:

  • We have a lot of differing opinions ranging from “do we even need smart contracts” to “should we make our own domain specific language for these scripts” or “should we just let them write scripts in javascript and make the browser do the rendering” and other great ways to get ourselves in deep water. We know the general way in which we’d like to store the scripts and handle content addressing for it, but we’re looking for ideas and opinions regarding parsing and interacting with the stored data. Speaking of stored data, that leads us to the next thing we could use help with..
  • Smart contracts aren’t as attractive as they sounded in 2018 for the normal users, and Crypto-Turtles doesn’t sound like a good use for our time, so though we are planning to allow for pinning scripts that can be parsed/interacted-with by Karai, we’re admittedly at a loss for what value this gives the common user at home.
    The utility of contracts only becomes more evident for businesses, especially so when combined with Multisig which allows, for example a business to create a wallet that requires 3 of the 5 trustees to combine their keys before making a transaction. We’d like to hear ideas from you guys with regards to cool uses for smart-contract-like-things that you like or use on other networks, and it would help us by getting the conversation going in the dev_karai channel so we can cultivate more tangible utility for normal users.

On the development side, currently we have a small list of basic functions outlined in the design doc that I feel we need to reach a suitable mvp. To briefly describe some of the things we have decided on, we are using the libp2p-go library to connect to the IPFS network, which will cover p2p essentials like content addressing, peer management, TLS encryption and NAT traversal for people behind home routers. We also think this is a good idea for p2p because of the fact that this will later allow us to implement caching/pinning of these scripts which should aid in distribution.

Regarding development choices we’ve made, the decision to use Go was because Go has the perks of being a C-like compiled language that can produce a cross platform binary in most cases. Since I’ll be in charge of babysitting and developing this project I wanted it to make sure it is written in something that is a pleasure to read both for others and myself, and is welcoming to new people who may not be as experienced with something like C++.

RockSteady

https://github.com/RocksteadyTC/go-karai/blob/master/docs/DESIGN.md

The TurtleCoin community in China is very large, so we have established a Chinese-only website to help the trtl holders in China. http://trtlchina.com

Blockchain import / export files

This week I have been experimenting with importing and exporting blockchain bootstraps. You can currently import the blockchain from the set of .bin files, but as I think I may have mentioned in another update, I’ve been working on removing those, to save hard drive space to store the blockchain.

Since the .bin files will no longer exist to be imported with, I’ve added a way to export the blockchain via the daemon, and subsequently imported again. It will also support exporting ranges of the blockchain, so you could, for example, import blocks 2 million to 2.2 million, if you want to catch up your daemon which is synced to 2 million and not have to download and import the whole chain.

Another avenue I’m interested in exploring is allowing syncing wallets via importing one of these bootstraps. This should be faster to sync than directly downloading blocks from a remote node, as there will be no database latency and no network latency.”

Zpalm

https://github.com/turtlecoin/turtlecoin/pull/1033

I was bribed paid 999 TRTL to place this ad for a twitch channel here from a guy in the chat. So long suckers, I’m retired now. https://www.twitch.tv/sythecc

This was my plan all along. I’m not sorry.
-RockSteady
Categories
All

COVID-19 TurtleCoin Response

Categories
All

This Week In TurtleCoin (March 10, 2020)

This week we found you can make hand sanitizer for pennies on the dollar by mixing foam peanuts and unleaded gasoline.

Developer Updates

TurtleCoin devs booby trapping the links in roundup submissions knowing Pappy Rocksteady has to click them all..
smdh, yall are playing with the meme master

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. To submit your post, click this link

LevelDB

Pluton/CapETN recently made a PR adding a LevelDB database backend. This alternative to RocksDB so far is showing some pretty good results in preliminary testing, with faster wallet sync speeds, and reduced database sizes.

This week, I added some extra features to this PR, the main one being allowing swapping database backends at runtime, rather than compile time. This means you can run a LevelDB and RocksDB backed daemon without having to recompile each time. This should help speed up testing of this new database, and if implemented, will allow users to select the backend that works best for them.

We had some reports that levelDB had high memory usage under Windows when the database was being compacted – I exposed the levelDB max file size configuration as a daemon argument, to test if smaller file sizes causes less RAM usage, as I suspect. Early testing suggests this parameter doesn’t effect database speed, so it may be worth decreasing this for optimal performance.

My changes also improved the database interface to make it easier to implement other database backends in the future. A few months ago, we experimented with lmdb, and Rock suggested BoltDB could be another decent database to try out. This should make it easier for interested parties to try out their favourite database to optimize for their specific daemon usages.

Good work Pluton!

Zpalm

https://github.com/turtlecoin/turtlecoin/pull/1034

https://github.com/wrkzcoin/turtlecoin_rnd/pull/1

TurtleCoin RPC Wrapper – Python

“This is going to be the updated TurtleCoin RPC Wrapper in Python for TurtleCoind as well as wallet-api.

The project has already been started by me, and I’m presently working on the wallet-api wrapper which is the new one.

Neither the docs nor the GitHub repo have any content as of now. I’ve the scripts locally and I’m gonna upload as soon as I’m doing alongside making the documentation for the module.

I hope to have it done by the last week of this month. Stay tuned for updates! :-)”

sohamb03

https://github.com/sohamb03/trtl-py

https://trtl-py.sohamb03.me

CuvéeBits TRTL Mining Pool One Year Anniversary

“Forgotten and covered by some dust sits an ARM board (OrangePI 1+) that I set up as a mining pool about a year to date ago.

We’ve seen good and bad days, at one point the pool (publicnode.ydns.eu) was a top 6 pool, and sometimes it is only a few of my friends using it for almost an equivalent of solo mining.

Some stats for you: Total blocks mined 566, orphan rate about 5.2%, 77 registered addresses, top hash rate about 2.1 MH/s on the previous algo (cn-turtle) and almost 4MH/s at peak times on the chukwa algo.

I run two other pools for TurtleCoin forked projects on ARM boards as well. It proved very reliable, stable, sturdy and powerful enough to accommodate miners of all shapes and sizes, including those with insane hashrate.

Who would expect you can run a mining pool on a credit-card-sized ARM computer that requires little to no maintenance, and that had barely any outage over the past 12 months? ”

Olé Cuvée

https://publicnode.ydns.eu

Hunting for data races in RPC threaded in forked projects

“I spent a good few nights over the past few weeks hunting for core dumps and analyzing them (coredumpctl gdb) across TurtleCoin, DeroGold and WRKZCoin in order to find as many problems with some of the mining pool calls to the daemon via RPC threaded.

As many of you probably know, zpalm did a great job rewriting the RPC daemon code as threaded. The challenge is that now that we unleashed the beast (RPC threaded), it has to interact with the old and ugly dispatcher code, which is single-threaded.

While things look fairly good and stable with TurtleCoin, having help of some of the fork coins proved beneficial – one of the fork coins operate at difficulty target of 20 seconds, and given the network hashrate, miners can mine a lot of blocks – this helped us uncover a few bugs in the blockchaincache code, which in the worst case could badly corrupt database.

As I was discovering the bugs and posted them to our Discord server, zpalm prepared the fixes almost immediately for TurtleCoin, from where myself and I would apply those to with @Pluton to the other two forked coins, testing in production almost immediately 🙂

Great to work together with Zpalm and Pluton on this – few more iterations and I believe we will have fixed most of the issues! ”

Olé Cuvée

This is the italian hand gesture for ‘I have to poop, but just a little”

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!

Rig Of The Week

Do you have a TRTL mining rig you want to show off? Tell us about it!

Weffke’s ‘The Mining Frankenstein’

I’m Weffke, someone who started mining as an experiment, creating this monstrosity. using all 2nd hand parts and learning things the hard way. Currently running 6KH/s with CPU on RandomX on XMR and having the 2 RX550 do a 50KH on trtl

2 RX 550’s (1x 2GB & 1x 4GB), 6GB ECC memory and 2 x Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz cooled by some of the great but ugly Noctua CPU coolers and an old 128 GB SSD.

TeamRedMiner has my back.

Free Advertising

This is a spot to spam anything TurtleCoin related that you would like to advertise, it’s free to put an ad in the roundup.

  • PWS TRTL Node [US West] “This is my TurtleCoin node. It’s been public since the last month, and I’ve had a good amount of usage of the node, as evident from the regular fee deposits into my wallet.
    The node only has a 5 TRTL fee, and I’ve kept it low enough for sustainability on both ends – mine as well as the end users. 🙂
    Hoping that y’all will like the node. I’m glad to contribute to the TRTL Community. ” sohamb03 http://trtl.sohamb03.me
  • harrynetwork.uk.to Node – only 2.5 TRTL transaction fee! I run the currently cheapest (excluding free) nodes so you should use my node to save on the usually more expensive node fees! Try it out now!
    IP: harrynetwork.uk.to:11898 Harryw007#3340 https://explorer.turtlecoin.lol/nodes.html
  • Small but beautiful pool in the heart of Europe. Check it out. https://publicnode.ydns.eu

Shoutouts & Thanks

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

  • japakar thanks!
  • Olé Cuvée Shout out to Greywolf, for dedicating so much time and effort to our projects and for being here! Take a good care of yourself!
  • Olé Cuvée Shout out to @Pluton (CapEtn). One of the nicest people I ever met, and a cracking good inspiration for me in things crypto – runs his coin, tipbot across multiple servers and hosts so many other coin nodes (50+ iirc). Hope to meet up in person one day!
  • Rock I didnt want to waste space in the main dev roundup area because it seemed too hype-ish, but the conversation about blueprinting the Karai milestone has restarted now that the network is on more stable footing (thanks devs!). If you’d like to know more, or are wondering what Karai is, please check out #dev_karai in the discord and scroll up about a week.
  • Rock Thanks to everyone for seemingly being a lot more enthusiastic this week about entering stuff in the roundup 🙂 makes me feel all comfy
  • Zerouanita Pepperoni is the best authentic italian pizza only when combined with pineapple, this is true

Categories
All

This Week In TurtleCoin (March 3, 2020)

And just like that, it’s like we never stopped posting :).

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 Core

After a successful fee per byte fork and a lot of other big changes, there were a fair few requested features and bugs that needed handling:

  • The first change was to allow wallet-api to support sending multiple transactions simultaneously. This was not encountered in testing, but with more people adopting wallet-api for their services, it was desired to be able to successfully send many transactions back to back, and before this change, the latter transactions would fail due to using the same funds the first transaction used. As the first transaction was still in the process of being created, the funds had not yet been locked from using in transaction creation.
    With the latest code, this is no longer an issue, and you can now send transactions as fast as you please.
  • The next fix was to handle a bug in the wallet format upgrader. In v0.22.0, zedwallet migrated to a completely new backend, which uses a different incompatible wallet file format. Zedwallet would automatically convert the wallet to the new format, but in some cases, there was an issue where the sync would start at an earlier point in the blockchain than expected. This caused transactions to be scanned twice, resulting in some peoples wallets showing double the true balance. While a simple rescan fixes this issue, we have now prevented double scanned transactions from being counted twice.
  • As more service operators have been adopting wallet-api, they desired logging to help track down issues and monitor the operation of services. While both zedwallet and wallet-api already supported logging, this logging can now be easily written to a file, for better integration with monitoring apps, and easier bug reporting.
  • Next up, another one for service operators, is a new wallet-api method to allow exporting the wallet data in a JSON format. This can then be easily imported into other libraries, such as turtlecoin-wallet-backend-js, which allows working with the network directly in javascript, without having to use HTTP endpoints which allows for a much richer API. It also helps aid in debugging, as it can let you inspect all transaction inputs and outputs.
  • Another change that was introduced in v0.22.0 was threaded validation of transaction inputs, which allows for much higher CPU utilization when syncing blocks. This had the unfortunate downside of introducing a race condition when accessing the database, which could rarely cause crashes. This should have now been fixed by using a thread safe database access method. Make sure to try this one out if you’ve been experiencing random daemon crashes.
  • Again on the wallet-api theme, service operators requested further control over fusion transactions. While regular users generally want to keep their wallet comprised of as few inputs as possible, allowing them to send the maximum amount possible with minimum fees, pool owners or other service operators may wish to fuse inputs only up to a certain size, allowing regular payments without locking funds, and transactions with a smaller average size by utilizing primarily inputs of the target output amount. For example, if you regularly send payments of 10,000 TRTL, then you probably want most of your inputs to be around the 10,000 TRTL mark so you use fewer inputs and create less change.
  • Finally, we have a fix for pool owners, which may have caused daemon instability when calling certain API endpoints with an unsynced daemon, mainly the /submitblock method. This is now safely handled, and should not interfere with regular daemon operation.

That’s all for this week. If you’re interested in helping out with development, check out the GitHub issue tracker for easy to tackle first issues.

Zpalm https://github.com/turtlecoin/turtlecoin

Threaded input validation

I was working on another pull request, and to verify everything was working correctly, I needed to do a full sync from zero, without checkpoints. You have to manually disable the inbuilt checkpoints to do this, and it ends up taking an awful long time.

I was checking out my CPU usage, and noticed it was just using a single core, so I set out to figure out if I could speed it up. I started by adding a threadpool class, this lets us run a few threads constantly waiting for work, instead of spawning multiple threads for every transaction to process, which would add a lot of overhead. Once that was done, I just needed to queue up each expensive input validation into the threadpool and wait for them to complete in parallel.

Once done, I was seeing around 30-50% CPU usage, which for my cpu was a speed increase of roughly 4-7x.

The good news is that this improvement also applies when you are syncing new blocks that are not covered by the inbuilt or external checkpoints – so everyone can benefit if they have cores to spare. If not – no problem – you can make it run on just a single thread via a command line option if desired.

Zpalm https://github.com/turtlecoin/turtlecoin/pull/965

Proton Wallet

Hey everybody, Extra here, just checking in on the direction that Proton is headed in. I’m pretty excited about some of these planned changes I’ve begun working on.

Some of you (especially those of you with slower machines) may have noticed that when the wallet is syncing, it slows the GUI down to a halt, particularly some of the more spammy blocks. Well, I’ve began the work of extracting the wallet backend out into its own process. What’s this mean? It means that when completed, the GUI and the wallet syncing process will each use their own process on the CPU; so that even when the CPU is working as hard as it can on the wallet sync, the GUI itself should always be fast and responsive. Neat!

I also want to take the time to thank the TurtleCoin community and the hackathon judges on my hackathon win! If you haven’t seen the project I entered, it’s a 3d visualization of the memory pool. It was a fun project for me to do and I’m totally stoked it won out of 20 entries! Check out the link below if you haven’t seen it yet.

Until next time, stay cool TurtleCoin Community!
ExtraHash http://mempool3d.extrahash.org/

turtlecoin-crypto

Long story short, the turtlecoin-crypto project is the stand-alone version of the cryptography used within a number of community products. It supports Node.js, WASM, JS, C++, C# (via P/Invoke) and a few others.

The biggest updates I’ve added lately include full TypeScript definitions of the library and building the wrapper that is currently in turtlecoin-utils into the base crypto NPM package thereby making it even easier to work with the cryptographic package.

IBMCD https://crypto.turtlecoin.dev/

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!

Rig Of The Week

Do you have a TRTL mining rig you want to show off? Tell us about it!

This week’s rig, “w1” @ 249 kH – TRTLv3iLkDhPvHYigBwMwv5714t54w6M833cVuQCYKiCTJ3UowAChbV1nBfTcU1XkaJaeAUyQYQqqQdGWobWjkMLH4A4QAoYJo3
It’s free!

Free Advertising

This is a spot to spam anything TurtleCoin related that you would like to advertise, it’s free to put an ad in the roundup.

Shoutouts & Thanks

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

  • Neo_Chen Mom, I am on TV!
  • greywolf thanks to LeoCuvée for recommending switching from using a micro sdcard to using an ssd via usb3 to store blockchains locally on my Macbook.
  • Jaoakar Thanks for being You! To another great year of turtlecoin.
  • greywolf thanks again to zpalmtree for always stepping up to help a struggling turtle who does not understand code but is immersed in the land of code-writers.
  • greywolf i apologize to RockSteady for egging on a heated discussion in his server that started in a different server, and i should have dropped it. instead, i came into the TurtleCoin server and continued the argument, which was not the right thing to do. Rock wears the crown, so i was out of line.
  • greywolf thanks a lot to zpalmtree and ExtraHash for helping me set up windows and linux testnets. and also thanks a bunch to Crappyrules for a one-on-one tutorial on the internal checkpoints file of the core code. i really appreciate these guys explaining stuff to me in a way that i can undrstand.
  • japakar thanks!