Skip to content

MithrilMan/MithrilShards

Repository files navigation

title description
Welcome
Mithril Shards home page

Mithril Shards

Goal

Mithril Shards goal is to implement a .NET 8 extensible P2P network & distributed services library from scratch with focus on architecture and performance.

Allows you to define custom network serialization protocol, easily handle payload messages and interact with the software leveraging any available features (named Shards) like Web API endpoints, cross platform Blazor UI, and a lot of other exciting stuffs that community can implements and release to the public too!

The project is very ambitious and it's currently developed just by me as a pet project but a huge effort has already been made and some part of this unique code base has been reused in other blockchain technologies to improve their performance.

As a proof of concept, a new Bitcoin full node is being developed using this library, actually hosted in this repository (it's a WIP project).

Current Tech

A random list of available tech used within Mithril Shards.

  • .Net 8 - ... for everything.
  • Bedrock Framework - TCP/IP default connectivity implementation.
  • Swashbuckle - to handle Web API in a configurable, multi-area environment and have a playground to test APIs with swagger.
  • Serilog - default logging implementation.
  • BenchmarkDotNet - a benchmark framework, very handy to benchmark different approach during implementation phases.

Why Mithril Shards?

Well... let's bullet some facts

  • I like fantasy a lot, J.R.R. Tolkien of course has been one of my reads and mithril is a fictional metal in his universe.
  • The main properties of mithri are: being very strong, light and in its pure form very malleable to work with.
  • I'm a developer who likes to engineer my software to be extensible and solid.
  • My github handle is MithrilMan, guess what?

Now take these information, mix them up, and you'll see that to I aim to have a robust, fast and flexible project! So this explain mithril, while about Shards, is because I see this project as a mix of shards that can be melted together to give you a precious artifact!

In fact you shouldn't be surprised that the root class is called Forge... who says we can't have a bit of fun while designing a software?

Call to Action!

!!! tip "Join to give feedback, ask for features, support, etc." Discord server: https://discord.gg/T9kyKz4bAu

CI

Current status
Main Build