Categories
Weekly Update

This Week In TurtleCoin (June 26, 2019)

Developer Updates

Wallet format upgrading

Wallet format upgrading

As I mentioned last week, I was working on upgrading turtle-service/zedwallet wallets to the WalletBackend/zedwallet-beta format. This is now complete, and I went ahead and implemented the transparent upgrade feature.

Once the PR is merged, you can go ahead and open an old style wallet in zedwallet-beta or wallet-api and it will upgrade it, and retain all syncing progress, transaction history, and so on.

This should make it a lot easier for new GUI wallets or services to upgrade without having to bother reimporting their wallets.

Zpalm

TonChan

TonChan

I’ll probably be releasing a new TonChan version in a few days. It’s nothing major, but there’s some wallet sync speed improvements, 64 bit support, and a few bugfixes. I’m pretty happy with where it’s at, it works pretty nicely aside from somewhat slow syncing, the only real feature it’s lacking is optimizing.

However, this feature is present in the new version of the wallet backend it’s using, so it would be pretty trivial to add a manual optimize, but it also has an auto optimize feature, which is enabled by default.

Haven’t really had any time to fuck around with the C++ backend to see if we can get faster syncing on mobile I’m afraid. Kinda a large time investment where the only positive outcome is faster syncing speed.. :/

Remember if you’re importing a wallet from desktop, check the FAQ screen for a few tips on how to greatly increase your sync speed.

Zpalm

WalletBackend

WalletBackend

Fixed a rare bug in WalletBackend which would cause about 1 in 256 transactions with a payment ID to be incorrectly scanned. If you were having balance discrepancies running wallet-api, please update your daemon to the dev branch and resync to see if it fixes it.

Zpalm

turtlecoin-wallet-backend

turtlecoin-wallet-backend

Small update to the js backend to fix the config being static – this would cause issues when the library was initialized multiple times with different coins, for example, if you were creating a multi-coin wallet. It should now work perfectly with multiple coins at once.
Thanks to fipsi for reporting this so I could get it fixed.

Zpalm

Rig Of The Week

Rig3 by Greywolf (all stock settings) just over 19K H/s

it is an open air frame i constructed with 1/2″ angle aluminum bars, and some self-tapping screws to hold it together. it sits on a 1″ thick rectangular piece of smooth plywood. the frame has five (5), 2-1/2″ wide slats of wood, to support the mobo and PSU. i positioned a 6″ long angle aluminum bar mounted to the frame in the rear, to support the GPUs. the components are EVGA 500W PSU, GIGABYTE GA-AB350-Gaming 3 mobo, AMD Ryzen 3 1200 quad core CPU, Patriot Viper Elite Series DDR4 8GB (2x4GB) 2666MHz PC4-21300 RAM, Windows 10 Pro on a 120GB SSD, with a 64GB SSD to store data and installed programs, AMD RX Vega 56 and two (2) AMD RX550 GPU’s, with a standard PC speaker and an on/off switch wired to the mobo jumpers, a single-dongle Logitech wireless keyboard and mouse, and a USB 3.0 extension cable from the rear panel to the front of the rig for easy access.

i don’t have any secrets, i run everything stock, and when stuff breaks, i ask for help from the best community in the crypotosphere, found in the Discord TRTL Network server

greywolf – i’ve been with the community a few months past a year

Shoutouts & Thanks

Rock – shouts out to zpalm who wrote the entire roundup this week.

Rock – shouts out to everyone who participated in last week’s DnD sesh with the TRTL crew. It was really fun and I’m looking forward to continuing the campaign this weekend 😀

Rock – shouts out to captetn for running the new tipbot and to madk for running the old one

See you lads Friday 😀
We hardly knew ye. Thanks Madk for the many good times and faithfully relayed transactions. You will be missed

Categories
All

This Week In TurtleCoin (June 17, 2019)

From the Teacup Files https://blog.turtlecoin.lol/archives/the-teacup-files/

Developer Updates

In this issue we all post shocked pikachu emojis when people forget to upgrade their software for the fork

To update your core: latest.turtlecoin.lol

The countdown until upgrade: https://explorer.turtlecoin.lol/

The Teacup Files

Teacup has returned with a bountiful harvest of memes! Check them out here https://blog.turtlecoin.lol/archives/the-teacup-files/

Rotate Discord Server Invite Backgrounds

Discord’s new Nitro Boost stuff allows for Discord owners to choose custom background images when people use the invite links. However it means people have to manually click buttons in the Discord app.

So please head over to https://support.discordapp.com/hc/en-us/community/posts/360047859252-Add-API-endpoint-for-server-invite-background and upvote this post to encourage the Discord developers to expose this feature in the Official API. SoreGums

https://support.discordapp.com/hc/en-us/community/posts/360047859252-Add-API-endpoint-for-server-invite-background

TurtleCoin Github Bot

I’ve been looking into supporting multiple people making an issue at once with the Github bot; it doesn’t seem like it’ll be too hard to add, and it’ll be a nice little perk. If you don’t know what the Github bot is, I recommend you check it out! It lets you easily create a Github issue on any turtlecoin repo w/out an acc; type !tag issue in the #bots channel to learn more

Sajo8

turtlecoin-crypto

As mentioned last week, I’ve been working on combining the different versions of this repo together. Good news! It’s done.

This repo now builds the following:

1) A c++ static library (Windows, Linux, OSX)
2) A shared library via DLL (Windows) that can be linked against in any number of languages (C# anyone? — @canti, I see you)
3) Node.js native addon module (same as the NPM package before)
4) Native Javascript implementation (slow, very slow, but it works)
5) WASM module for browser use (much, much, much faster than the Native JS in browser)

All of the builds support the core crypto used not only in wallet functions (creating keys, finding our outputs, generating ring signatures, etc) but they also contain all of the hash functions available in core, including Chukwa (Argon2id with our parameters). The WASM module makes it very easy to bring the crypto methods used in TurtleCoin to the browser which will make client-side web wallets faster than ever*. In addition, if someone wanted to build a web miner based on the package they can do so.

Spoiler alert: Someone is building a client-side web wallet built on this using wallet-backend-js.

iburnmycd

https://github.com/turtlecoin/turtlecoin-crypto

turtlecoin-utils

Using the updates to the turtlecoin-crypto library, I’ve performed a few updates on the development branch of turtlecoin-utils. Most notably, the utils package now smart loads the crypto module. If we can load the Node native addon module, that’s always our first choice. If we’re in browser, then we try to load the WASM first. Lastly, if all else fails, we fall back to the native Javascript implementation. This also has the added benefit of cleaning up a bit of the code that revolves around the crypto in the library.

In addition, due to the exposure of all of the crypto functions in the library now, we’re able to check that the ring signatures that are generated via the library are checked to be valid upon creation thereby reducing the chance of generating an invalid transaction via the library.

If that wasn’t enough, I’ve added a webpack configuration to the project that ties everything up into a nice bundle for inclusion for browser use. Browser use did you say? You betcha. This webpack has been deployed as part of the TurtleCoin Explorer and is used for the tools page (playing with wallet addresses & keys) and the transaction checker. It’s going to make that top secret client-side web wallet shine.”

iburnmycd

https://github.com/turtlecoin/turtlecoin-utils

CS-TurtleCoin

Over the last week, I have done a lot on the CS-TurtleCoin/CantiLib project. I pushed some major updates, including a full rewrite of the main repo, which features improvements across the board. As I have been fairly silent with the project lately, I’m going to give a quick run-down of what it is and what I have gotten done thus far.

CantiLib is a multi-purpose C# library with many useful tools for a blockchain environment, including a standalone P2P client system, a configurable REST API server, logging utilities, database functionality, cryptography, byte-level serialization, and CryptoNote protocol handling. CS-TurtleCoin is an effort to tie these tools together to create a fully operational TurtleCoin node, coded from the ground up in a C#.

As of the time of writing this, I have P2P connectivity, API handling, CryptoNote deserialization, peer discovery and handshaking, some database functionality, the start of a blockchain cache, and a number of other utilities and functions in place. Lately, my focus has been on refining peer discovery between nodes, porting cryptographic functions from the core code to C#, connecting TurtleCoin-Crypto to the library, adding more functionality and ease of use to the API server, and have also begun work on the sync process and blockchain caching. More to come soon!

canti

https://www.github.com/turtlecoin/cs-turtlecoin

wallet-api-go

wallet-api-go

This project aims to provide a wrapper for making wallet-api requests with Go. All of the wallet-api responses are marshaled into an appropriate type. You no longer have to manually convert from map[string]interface{}!

If there’s any bugs in the codebase, feel free to leave an issue on GitHub. 😀

dsanon

https://github.com/anonanonymous/wallet-api-go https://godoc.org/github.com/anonanonymous/wallet-api-go

TurtleCoin Chukwa Cuvée Testnet available

As everything is in full swing to get ready for the Argon2id-based new TurtleCoin algo called chukwa, we needed to spin up a local testnet.

This allows us to benchmark, test and optimize our different boards, and see how the trtlrig works compared to the native TurtleCoin miner.

We made our test environment available. If you want to see how your harware will do on the new algo, and try out how it feels living on the cutting-edge technology, build your trtlrig from the add_chuwka branch available in the TurtleCoin github, and point your xmrig miner using the following parameters:

-o publicnode.ydns.eu:3420
-a chukwa
-u your TRTL address

Please note no web front-end available, and no TurtleTestCoin pay-outs. This environment is for benchmark tests only.

@OléCuvée

34 hot singles in your area are waiting to upgrade your wallet format

Wallet format upgrading

A few people have requested that there be a utility to upgrade a wallet from the WalletGreen format (zedwallet, turtle-service), to the WalletBackend format (zedwallet-beta, wallet-api).

I’ve been working on this for the past few days, and think I am close to completion. Got a few bugs with transfer amounts being incorrect, but hopefully it won’t be a sticking point.

I’m considering adding an automatic upgrade, so you can transparently open an old format wallet and have it upgraded without any user interaction. One downside is that we have to generate the key image for each input when we upgrade the format, which is pretty slow for a large wallet – this can take around 10-20 seconds on my ~8000 transaction wallet.

Of course, this will only have to be done once, so the delay could be worth it.
Hopefully this will make it easier for services to migrate to wallet-api, along with new GUI’s/CLI’s using the new backend.

Zpalm

Rig Of The Week

Each week we like to highlight a person who has sent in pics and descriptions of their TRTL mining rigs. This week is ZenMaster Mr Lahaye’s turn! Ironically, it was his idea to start this column about rig of the week so maybe he had this planned all along! hmmm!

RigRX560 by ZenMaster (MrLahaye)

6 x Msi Aero rx560 4GB with fan upgraded to Artic Accelero Mono plus
1 x CPU Intel G3900 2.8Ghz
1 x 8 gig DDR4 stick of memory
1 x Msi z270-a pro Motherboard
1 x Corsair 850 Watts powersupply
1 x SSD Sandisk 16 GB with HiveOS
1 x Veddha 6 Gpu mining rig Frame as pictured no fans

  • Around 20 Kh/s
  • This rig consumes around 350 Watts taken at wall.
  • I got this complete rig for 600$ CAN on Ebay. Check Ebay auctions often and snipe last minute deals. I can usually get one or two deals like this every month.

I’ve already described myself in a previous roundup : https://blog.turtlecoin.lol/archives/this-week-in-turtlecoin-may-7-2019/

Advertisements

  • CuvéeTurtle Pool located in the heart of Europe (Prague), with fast connectivity and scalable hardware platform (ARM-based SBC Cluster) is looking for you – miners like you of all shapes and sizes! Help us with our journey to grow our pool. You would still be one of our early adopters. Low payout limits. Our long-term commitment and friendly support by @Olé Cuvée himself. Pool web frontend webpage: https://publicnode.ydns.eu Join us now! Point your miner to publicnode.ydns.eu:5555 ./xmrig -a cryptonight-turtle -o 192.168.99.254:3333 -u TRTLxxxxxxxxx --donate-level 1 -p rig2 Flood us with some serious hash rate 🙂 No matter how much you throw at us, we will cope with it! https://publicnode.ydns.eu
  • @shelly has finally started creating drawings and paintings for sale versus doing doodles for all of us Turtles. A few of her pieces are available at Buckland Arts. Can you spot which ones are hers? Check out the page and give it a like to support creative Turtles. https://www.facebook.com/bucklandarts/
  • Browser miner, use it or embed it into your sites and let others use it! Hashes about 200-400 on mid setting. http://turtle.japakar.com/miner

Buy With TRTL

These are things that were pinned this week in the #merchandise section of TRTL Network Discord chat.turtlecoin.lol

selling asus dual gtx 1060 for 1.25M TRTL shipped (OBO) – Extrahash on discord
ASUS X370 CROSSHAIR VI EXTREME (full package) – 2M TRTL shipping within EU on quote – Elkim on discord
I have brand new, still sealed GPU risers for sale in TRTL. 25k trtl each, 5 for 100k. opened this one to take a pic. Bulk quantities are available. Small amounts can be shipped for around 80k trtl in a flat rate padded envelope within the US. – extrahash on Discord
I have two clusters of RPis. 3 B+. Four in each cluster. 120 watt charging power supply. 2 each 5 port switching hubs. SD cards pre-programmed with Ubuntu and XMrig miner. All set to mine. Just connect to a router or range extender. Edit the config.json file with your wallet address. Good to go! If anybody wants this as a whole, make me an offer. I do not want to part this out. Comes with all 1 ft and 18″ CAT 5e cables. Anyone interested? – radarlarry

Good First Issues

Trying to get your developer role in Discord? Want to be part of the dev team? Here are some ‘Good First Issues’ so you guys can have some low hanging fruit to get you started! Beginners, enjoy!

Shoutouts

grey’s pi3b cluster of doooom
  • iburnmycd Shoutout to @shelly for a successful grand opening of Buckland Arts where some of her artwork is featured.
  • JAPAKAR KING OF THE OZARK Once again, shoutout to a great community! This place is unique and awesome!
  • greywolf thanks much to DatsunPatrol for the Optimizing-RPi-TurtleCoin-Mining guide, and to Olé Cuvée (aka LeoCuvée) for the encouragement and oversight, as i put together a 4-raspi3b+ mini-tower mining TurtleCoin
  • rock shout to zpalm for helping with my golang homework, thanks to dsanon for the wallet-api-go work, thanks to japakar, greywold, mufalito and others for tips this week, and thanks to the community for again being awesome, and thanks to teacup for the memes 😀
Categories
Weekly Update

This Week In TurtleCoin (May 28, 2019)

In this episode we made it to the papers when over 50,000 system administrators were found to be incompetent (hey ma!) In other news, water also wet.

On the bright side, Home Depot is hiring all positions

Developer Updates

If you’d like to submit your dev update to the roundup, fill out this form https://goo.gl/forms/BNaRYkUmOVOa1apQ2

trtlrig

trtlrig

Good news! I spent a bit of time over the holiday weekend and wired up the xmrig fork trtlrig to support Chukwa (Argon2id) CPU pool mining. I’ve tested it on Windows and a few different flavors of *nix. @LeoCuvée also mentioned that he tested it on ARM. Overall, it’s ready to go but I’m sure that someone will come around and fine a few enhancements to squeeze a bit more hashrate out of it but it’s an awesome start.

https://github.com/turtlecoin/trtlrig/tree/add_chukwa

iburnmycd

node-turtle-pool

node-turtle-pool

As part of testing trtlrig, I verified that all of the necessary updates for turtle-pool are complete for Chukwa. Everything needed has been merged into the development branch if you’d like to set up a testnet and pool for testing yourself.

https://github.com/turtlecoin/node-turtle-pool/tree/development

iburnmycd

Successfull build and test of the Chukwa TRTLrig on SBC

In the past few days, we managed compile and test the TRTLrig for the Argon2id Chukwa algo which TurtleCoin will fork to at block 1,800,000.

For our testing, we have used slightly different parameters than those that will be used by TurtleCoin (512kb memory, 3 iterations).

For our test, we worked together with @CapEtn of WRKZCoin, which will use 256kb memory and 4 iterations. Results?

Partly pleasing, partly requiring further optimizations.

The RK3328 chip that runs the Rock64 boards (which we use for our SBC nodes) gets a very nice bump. The increase is from underperforming slow 310 h/s on cryptonight-turtle to 550 h/s on Chukwa 256/4.

We also tested on the cryptonight-turtle best performer OrangePI One Plus, which is based on the Allwinner H6. Unfortunately, we could not seem to get any increase in hash rate on Chukwa 256/4 for this board, quite the opposite.

The OrangePI One Plus that otherwise excells on cryptonight-turtle (750 h/s) and actually does less on chukwa 256/4, specifically 623 h/s, no matter what we tried so far.

Well, there is a room for improvement! Slow & steady!

LeoCuvée#1481

Wallet sync speed improvements

Wallet sync speed improvements

As mentioned last roundup, I planned on working on multi-threading the sync process for wallets. This has now been completed and merged, and has given some decent speed gains.

Wallet syncing should now scale up to the number of cores you have (Provided you’re using the latest code and either wallet-api or zedwallet-beta). We’re now bottlenecked solely on how fast we can retrieve blocks from the daemon. Because of this, we don’t see huge increases in speed – as most of the time, we’re just waiting for more blocks rather than using all our threads.

However, if you have a less powerful device that previously was CPU bottlenecked – For example, a raspberry pi or other SBC, this should result in some more significant speed improvements.

Unfortunately, when using a remote daemon, threading does very little in terms of increasing sync speeds. This is a good reason to run a local daemon, especially on an SSD, if you want your wallet to sync super quick!

As you can see from the image above, with 12 threads and a local daemon, you can sync a wallet with over 10k transactions in under an hour.

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

Zpalm

turtlecoin-crypto

turtlecoin-crypto

Some advancement has been made on the stand alone crypto module that includes all of the necessary code in a nice, tight, static library for performing any crypto/hash related functions used within the Core project.

  1. Implemented a wrapper that passes all data into and out of the methods as strings to make it easier to link up to the library instead of having to carry a whole bunch of structs around.
  2. Added Chukwa support
  3. Improved Windows build process so that it creates a shared library (.dll) with the export definitions defined so that it can be linked against by other projects “easily”. See #dev_canticore for it’s first use (when he’s ready).
  4. Working to combine all of the turtlecoin-crypto repos (JS/Node.js/WASM) library builds into a single repo.
  5. Much, much, more.

https://github.com/turtlecoin/turtlecoin-crypto

iburnmycd

turtlecoin-multi-hashing

turtlecoin-multi-hashing & turtlecoin-cryptonote-util

Again, to support trtlrig & pool testing for Chukwa, the Node.js turtlecoin-multi-hashing & turtlecoin-cryptonote-util packages heavily used by pools and the like have been updated to support Chukwa (Argon2id). This package has been published to NPM and GitHub and is ready for widespread use.

https://github.com/turtlecoin/node-cryptonote-util

https://github.com/turtlecoin/node8-multi-hashing

iburnmycd

Dockerized TurtleCoin with TTYD

Dockerized TurtleCoin with TTYD

I recently came across a cool program called TTYD that shares a terminal with the web and decided to integrate it into my docker projects. I initially started with TurtleCoind and, after realizing how easy easy it was, quickly moved on to zedwallet. Once those two were completed I was able to create a docker-compose file that spun up both services on the same network, allowing you to view the TurtleCoind output and interact with zedwallet via a browser. At this point I was kind of taken with TTYD and decided to start containerizing some of the other terminal based community projects using this new (to me at least) shiny toy.

Words don’t really do this any justice. If you’re familiar with Docker and want to see it in action, jump to the run commands down below. If, on the other hand, you’ve been pushing off learning Docker, never understood what the hype is about, or never heard of it? Stop right now and go download it here. Seriously, go do it, I’ll wait. And while you’re at it install Docker Compose too. In the meantime, I’ll gush about some of the things that I think makes Docker cool.

Docker containers are standardized so we don’t need to worry about our environment, like finding and installing the right libraries on our host machine, to get the software up and running. They are portable and reusable in the sense that they can be easily pulled, started, stopped, or removed when needed (which is great for trying out new software). We can run multiple containers and allow them to communicate and share data with each other over isolated networks. We are able to mount files/folders located on the host within our containers which makes development easier. The list goes on, but enough of my fanboying let’s get started.

Now that you have Docker installed let’s spin up a container that runs TurtleCoind. Open up your terminal and run:

docker run -d -p 7681:7681 -p 11897:11897 --name turtlecoind-ttyd -v turtlecoind:/home/turtlecoin/ andrewnk/turtlecoin:turtlecoind-ttyd

Now access http://localhost:7681. After a few moments, you should see a terminal pop up and the familiar output of the TurtelCoind daemon.

But what about zedwallet, you say? Try it out with this command:

docker run -d -p 7682:7681 --name zedwallet-ttyd -v turtlecoind:/home/turtlecoin/ andrewnk/turtlecoin:zedwallet-ttyd

Then access http://localhost:7682.

Pretty cool, right? Using this setup we won’t be able to actually use zedwallet though, because we haven’t provided a node for it to connect to. Before moving on, remove both containers we just created, by running the command:

docker rm -f turtlecoind-ttyd zedwallet-ttyd

Using Docker Compose we are now going to run both containers connected to each other on an isolated network and accessible via the browser.

First you need to save the file that contains the “instructions”, then use docker-compose to spin everything up. Download this docker-compose.yml file and save it as docker-compose.yml. Then in your terminal navigate to the file and run:

docker-compose up -d

Once everything is up and running you can navigate to http://localhost:8080 to see TurtleCoind and to http://localhost:8181 to use zedwallet. You are now running the daemon and can use zedwallet as you normally would. In this instance all the data (TurtleCoind and zedwallet files) will be stored in a folder, created by the containers, on your host machine titled turtlecoin.

When you’re done playing you can destroy the containers and network by running:

docker-compose down

This is just a quick overview of what can be done. Each image can accept a wide array of variables to customize your container.

So far, I have created TTYD images for:

  • miner
  • Turtle CLI py
  • Turtle Network CLI
  • TurtleCoin Test Suite
  • TurtleCoin Wallet NodeJS (Divine)
  • TurtleCoind
  • TurtleCoind HA
  • zedwallet

Check out the repo at: https://github.com/andrewnk/turtlecoin-docker

If you have any questions, are interested in contributing, or have a suggestion for another dockerized community project then hit me up on discord.

https://github.com/andrewnk/turtlecoin-docker

andrew | trtl.rocks

Rig Of The Week

If you’d like to submit your rig to Rig Of The Week, send us your info here: https://goo.gl/forms/GkDSoP3fERBWm8aJ2

Home mining

Describe this rig! Give us as much detail for your post as possible.

13 amd video cards – 7970 rx550 rx570 rx580

What are your secret tips and tricks about mining TRTL?

Ubuntu, xmr-stak/xmrig, ask in discord and forums, read all the stuff ppl have to say in answer, then read everything else everywhere. to the nvidia fans: theres a ‘better than equivalent’ with 2gpus on my AMD cards. lol imho lol

Introduce yourself

Started mining as hobbyist . Want to get better result through mining

What is the hashrate of this rig?

115 khs

Bounty Watch

Bounties are a great way for motivated people to get things done! To submit your bounty, click here: https://goo.gl/forms/mkNv27sJtv1nHPtx2

Bounty: Chukwa (Argon2id) GPU Miner Support

Bounty: Chukwa (Argon2id) GPU Miner Support

Requirements: – Add GPU mining capabilities to any open source miner package with Pool support – Must support, at minimum, CUDA (NVIDIA) and all current OpenCL (AMD) cards including Vega – Must include benchmarking ability – Must include hash tests (see below for input and expected output) that complete successfully Acceptance Criteria: – Must meet the requirements above – Must be pushed to a public GitHub repository – Must honor all aspects of existing licenses – Must remain open source – Must pass tests on multiple GPU platforms Hint: You may find inspiration and/or basic support for hooking this up via https://gitlab.com/omos/argon2-gpu Input Data:

0100fb8e8ac805899323371bb790db19218afd8db8e3755d8b90f39b3d5506a9abce4fa912244500000000ee8146d49fa93ee724deb57d12cbc6c6f3b924d946127c7a97418f9348828f0f02

Expected Hash:

c0dad0eeb9c52e92a1c3aa5b76a3cb90bd7376c28dce191ceeb1096e3a390d2e

2,000,000 TRTL

Contact RockSteady for further details.

TREZOR HW WALLET community firmware

TREZOR HW WALLET community firmware

What: Make a community Trezor firmware for Trezor One or T or both in order to store private keys safely, send and receive TRTL.

Why: We can’t have official integration merged in their master branch, however they suggested we can fork their code and make our own and first community Trezor firmware ever. In addition if that happens, they would like to promote it in media.

3,500,000 TRTL

Contact Elkim for further details.

Community Advertising

Click here to submit your free ad: https://goo.gl/forms/mkNv27sJtv1nHPtx2

  • Hey turtles, I created a new exchange featuring your favourite cryptonote coins: TRTL, DEGO and more coming. Create an account today and start trading. 😉 – We’re still in beta phase – ping @fipsi in our Discord if something isn’t working – https://discord.gg/xm4rfWF https://tradelly.co
  • CuvéeTurtle Pool located in the heart of Europe (Prague), with fast connectivity and scalable hardware platform (ARM-based SBC Cluster) is looking for you – miners like you of all shapes and sizes! Help us with our journey to grow our pool. You would still be one of our early adopters. Low payout limits. Our long-term commitment and friendly support by @Olé Cuvée himself. Pool web frontend webpage: https://publicnode.ydns.eu Join us now! Point your miner to publicnode.ydns.eu:5555 ./xmrig -a cryptonight-turtle -o 192.168.99.254:3333 -u TRTLxxxxxxxxx –donate-level 1 -p rig2 Flood us with some serious hash rate 🙂 No matter how much you throw at us, we will cope with it! https://publicnode.ydns.eu

Shoutouts

  • greywolf thanks to oiboo for rush delivery of special wolfhair mane oil
  • greywolf shoutout to zpalmtree for never sleeping, and for always keeping a finger on the pulse of every channel
  • greywolf cheers for Sierra, who can always find the good in anyone, even the slimiest of worms
  • Quicky Chech out new web wallet Trtlfun. https://trtlfun.com/ Thanks
  • greywolf i wanna thank RockSteady for mentioning possible porting of TurtleCoin to FreeBSD. it sparked an interest, and now i’ve got a running 12.0-RELEASE system with a working window manager 🙂
  • Dreday000 Shout to the community, Just want to say good job TurtleFam
  • Elkim Thanks Oiboo for the awesome Hairy Turtle beard elixir!
  • Rock Shouts out to Krebs on Security and Kaspersky for not smearing us too much in their latest articles. Shouts out to Kaspersky more though for actually spelling our name right though.. Also, special reminder to keep your systems up to date, lest you become what the Chinese call «Les incompétents»
Categories
Feature Story

Transaction Inputs and Fusion Transactions (or “What is the max amount of TRTL I can send?”)

A large TurtleCoin transaction

A common question we get from users is wondering what the maximum amount of TRTL they can send is, often because they went to send a (relatively) small amount, and got an error ‘Transaction is too big’.

The question seems pretty simple, but the answer is not quite so simple!

To begin with, lets talk about what a transaction is made of.

Transaction Inputs / Outputs

When you send a transaction, lets say, 1000 TRTL, you might think it’s as simple as taking 1000 TRTL from your balance, encrypting it with your recipient’s public keys, and sending it out to the miners, to be included in a block.

However, your 1000 TRTL is actually made up of lots of smaller ‘Inputs’. These inputs come from previous transactions that you have recieved.

To demonstrate what I mean by this, lets start by looking at a coinbase transaction. A coinbase transaction is a special kind of transaction, where there is no sender. These are the rewards a miner gets for finding a block.

A coinbase transaction
The transaction the miner of block 800,000 received

Here’s the transaction that the miner of block 800,000 found. As you can see, they received 29,100.54 TRTL, but, if we look at the outputs section, they did not receive it all in one lump.

The transaction has been split up into several standard sized ‘Outputs’. The reason for doing this links into the privacy elements of TurtleCoin, and other CryptoNote coins. When we send a transaction, we hide one of our inputs alongside many other inputs. The network can verify that we own one of the inputs, but not which one. This allows the sender of a transaction to be hidden.

For this to work, we need there to be other inputs to select from. If we simply sent the exact amount in every transaction, then if you wanted to send an amount that had never been sent before, say, 1337 TRTL, you would not be able to obscure that you were the sender.

To ensure we always have enough inputs to match with, we use some set values, and build our transactions out of these smaller sized building blocks.

If you’re interested, you can view the possible sizes for transaction inputs here.

Hold on, what does it matter if my transaction has lots of inputs?

Well, when we send a transaction, we have to include each of our transactions inputs, along with the decoy inputs from other users, for the privacy features to function. These need to be available so we can verify that a user isn’t spending funds they don’t own, or trying to spend an input that has already been used.

To use a real world example, if you try and pay for a car in pennies, you’d need a pretty large jar to hold them all in. Similarly, when sending a transaction, each input takes up a bit of space in the blockchain. The largest a transaction can be is approximately 140 KB, and if your transaction will be larger than this, your wallet will reject it. This prevents your transaction being too large for a block, and never getting mined.

If your transaction is too large, stop thinking in amount, and start thinking in bytes.

Change

An unoptimized TurtleCoin wallet

Hopefully now you understand that a transaction is comprised of multiple inputs to make up the full amount of your transaction. One question on your mind may be – What if I have an input of 2000 TRTL, but I only want to send 1500 TRTL?

Well, we can do the exact same thing as when you were a kid and wanted to buy a candy bar, but you only had 5 dollars – you give the cashier your 5 dollars, and she gives you back 4 dollars in change.

Here’s an example of a real transaction, to show what I mean.

In this image, I sent 1500 TRTL to someone. You can see I used one input, of 20000 TRTL to do so. 500 TRTL + 1000 TRTL went to the receiver, and the other 18500 TRTL got sent back to my wallet.

You may have noticed when you send a transaction, some of your balance gets ‘Locked’. This is because you have had to send a bit more of your funds than needed, as you cannot make the exact amount, and you are waiting for the change to confirm on the blockchain, and return to you.

Optimization / Fusion Transactions

A TurtleCoin user performing fusion transactions

Now lets talk a bit about fusion transactions. If you haven’t heard of these before, that’s OK, they’re quite simple.

Recall how when we send a transaction, as long as the total value of the inputs/outputs on both sides match up, the amount of inputs/outputs we have doesn’t matter?

A fusion transaction is a special kind of transaction, where you are sending a transaction to yourself. We take all our small inputs on one side, and combine them into a few large outputs.

It’s a bit like those machines where you pour in your loose change, and get out a few dollar bills.

How can I send more TRTL?

So, on to the final section of this article – putting these steps into practice, so you can send more TRTL at one time.

Sending fusion transactions

Our first step we can take is to perform fusion transactions. The manner to do this depends upon what wallet you are using.

If you are using zedwallet, you can type optimize to perform multiple fusion transactions. This will also be done automatically for you, if a transaction fails due to being too large.

Similarly in Nest, if a transaction fails, it will offer you the chance to send a fusion transaction. These are done one at a time, so may take quite a while if you have a very unoptimized wallet!

Splitting up our transactions

If you’ve performed fusion transactions, and still aren’t able to send very large amounts, then unfortunately, the best option you can do is to split your transaction up into multiple smaller transactions.

Again, zedwallet will do this automatically for you (If you agree) upon failing to send a transaction due to it being too large. In Nest however, you will have to do this manually, with trial and error.

Avoiding the issue

Now, you might be wondering why you have so many small inputs. The simple answer is you have recieved a lot of transactions, or more importantly, a lot of small transactions. If you receive 1000 TRTL at a time, then the largest a single input could be, is 1000 TRTL. If you then want to send 100,000 TRTL, you will need to include 100 inputs, which ends up as a pretty large transaction.

If your mining pool has the option, you can increase your payment threshold. This will result in fewer inputs in your wallet, each with a larger amount. 1 payout of 5000 TRTL instead of 5 payouts of 1000 TRTL may make your transactions around 5 times smaller!

Solo miners can often send more TRTL at once

You may also like to consider using a smaller pool, which due to taking a longer time to find blocks, pays you out in larger chunks. Special mention to http://cryptonote.social/ which is a very cool solo mining pool – You get a full block payout everytime.

This is one of the reasons you encounter this issue in TurtleCoin, but don’t in other currencies, such as Monero, or Bitcoin – The payout thresholds for these currencies on mining pools are often very high, so you have very few transactions received. It’s worth noting that most cryptocurrencies use this method of including past payments in your payments, and returning extra change as a transaction to yourself.

If you’d like to read up more on the topic, in Bitcoin, these are called ‘Unspent Transaction Outputs’, or UTXOs.

Thanks

  • Thanks to turtle.land for the transaction screenshots – it’s a very nice looking block explorer, with great uptime!
  • Thanks to Der Wixer for his optimize maymay