Announcing Knuth C#/.NET API v0.2.1

1 91
Avatar for kth
Written by
3 years ago

Release announcement: Knuth C#/.NET API v0.2.1.

The Knuth team is pleased to announce the release of its C#/.NET API version 0.2.1.

This release includes the following features and fixes:

  • Just run native build the first time we build the .NET project.

  • Based on the Knuth C-API version 0.4.4.

  • Performance improvements.

Our goal is to provide a set of libraries in various programming languages that simplifies application development, ease on-boarding of new developers and let them build their new ideas and really boost the Bitcoin Cash ecosystem.

Using the Knuth C#/.NET API you can use our node as a library.

> "Hello, Knuth"

Using this library is very simple, since Knuth provides a NuGet package.

1. Create a new C# console project:

$ mkdir HelloKnuth
$ cd HelloKnuth
$ dotnet new console

2. Add a reference to our C# API package:

$ dotnet add package kth-bch

3. Edit Program.cs and write some code:

using System;
using System.Threading.Tasks;
using Knuth;

namespace HelloKnuth {
    public class Program {
        private static bool running_;

        static async Task Main(string[] args) {
            Console.CancelKeyPress += OnSigInterrupt;

            using (var node = new Knuth.Node("mainnet.cfg")) {
                await node.LaunchAsync();
                Console.WriteLine("Knuth node has been launched.");

                var height = await node.Chain.GetLastHeightAsync();
                Console.WriteLine($"Current height in local copy: {height.Result}");

                if (await ComeBackAfterTheBCHHardFork(node)) {
                    Console.WriteLine("Bitcoin Cash has been created!");
                }
            }
            Console.WriteLine("Good bye!");
        }

        private static async Task<bool> ComeBackAfterTheBCHHardFork(Node node) {
            UInt64 hfHeight = 478559;
            while (running_) {
                var res = await node.Chain.GetLastHeightAsync();
                if (res.Result >= hfHeight) return true;
                await Task.Delay(10000);
            }
            return false;
        }

        private static void OnSigInterrupt(object sender, ConsoleCancelEventArgs args) {
            Console.WriteLine("Stop signal detected.");
            args.Cancel = true;
            running_ = false;
        }
    }
}

4. Enjoy Knuth node as a C# library:

$ dotnet run

You can see the prerequisites here.


If you are interested in knowing more about the Knuth C#/.NET library, we will be presenting it at the Bitcoin Cash DevCon III on the 4th of September 2020.



Thanks to the Bitcoin Cash ecosystem for your support!

Sincerely,
The Knuth team.

12
$ 1.12
$ 1.00 from @NilacTheGrim
$ 0.12 from @TheRandomRewarder
Sponsors of kth
empty
empty
empty
Avatar for kth
Written by
3 years ago

Comments

This is great to see man. Bindings for all the popular languages and technologies. It really unleashes bitcoin cash's potential when devs using various techs can integrate easier. Very good work!

$ 0.00
3 years ago