MetacoSA / QBitNinja

An Open Source and powerful blockchain API
MIT License
69 stars 42 forks source link

ASP.NET Core support #28

Open bijakatlykkex opened 7 years ago

bijakatlykkex commented 7 years ago

Hello,

Is there any plan to support ASP.NET Core? I am asking this for hosting QBit.Ninja inside a docker container which could be run on Linux: https://github.com/MetacoSA/QBitNinja/issues/16 .

Thank you for your help

NicolasDorier commented 7 years ago

hey, I am not against if you can do it and submit a PR. It should be doable, but I won't do it myself.

I have been working on a lightweight block explorer which work on ASP.NET Core recently: https://github.com/dgarage/NBxplorer

Features:

Disadvantage:

Depending on your use case, it is worth considering.

Nicolas,

bijakatlykkex commented 7 years ago

I would be happy if I can contribute a useful code. I think a document explaining internals of indexer and QbitNinja would also be a great help to whoever wants to contribute.

Thank you for your enormous contributions to .Net Bitcoin and also providing timely support and updates.

NicolasDorier commented 7 years ago

You can take a look at this article:

https://www.codeproject.com/Articles/819567/NBitcoin-Indexer-A-scalable-and-fault-tolerant-blo

The only difference is that NBitcoin.Indexer now use P2P connection to a trusted node instead of block directory. QBitNinja is only a API which query those tables.

NicolasDorier commented 7 years ago

Basically there is two part: The indexer, and the Web API part.

You should start the API part imho, this is the simplest. The big question is whether the azure storage library is good enough in .NET Core.

bijakatlykkex commented 7 years ago

Thanks for update.

About the path for implementing .Net Core support; I think the proper approach would be to first port the NBitcoin.Indexer to .Net standard, so in future, we have a common code base between .net core and legacy .net which could be managed easily; By using https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer it seems indexer has little problem in this path.

About internal documentation, if it is appropriate, it is probably also helpful to have more details about things not much covered in the provided link, for example the details of tables: balances, callbacks, chain, chaincache, crudtable, transactions, wallets in Azure.

NicolasDorier commented 7 years ago

If you can port. This does not matter, just a problem of referencing another package, changing the csproj format, and run again.

NicolasDorier commented 7 years ago

Reopened as I think it should be done

NicolasDorier commented 7 years ago

Some progress: this project is now using the new csproj system