Nicolas Dorier



Offline



Activity: 714

Merit: 501







Hero MemberActivity: 714Merit: 501 NBitcoin : Mac, IOS, Android, Windows phone 8.1, Windows * Compatible Library December 08, 2014, 05:05:56 PM

Last edit: December 08, 2014, 07:56:17 PM by Nicolas Dorier #1



What does it means ?



That you can share your .NET code across several plateform painlessly with Xamarin.

That you can use a complete Bitcoin framework on Mac, android, IOS, Windows Everything all distributed with nuget.



How to use it ?



If you are using Visual Studio, then it is as simple as running



Quote Install-Package NBitcoin

On your project, nuget will figure the most feature complete version of NBitcoin for your plateform automatically.



What does it means technically ?



Making NBitcoin works accross all plateform, made me create a version supporting Portable Profile111 and Profile259 (111 + wp8).

It means that I needed to strip a few things, to isolate the common denominator :



-Bitcoin Network connection (Because there is no socket support in this profile)

-Payment (BIP70) (Because it depends on Protobuf that is not portable on profile111, and because profile111 does not support X509Certificate2 either)

-You will need to configure the plateform specific RNG depending on the plateform. (RandomUtils.Random, use the UnsecureRandom, if you don't care about a good RNG, NBitcoin use Deterministic signatures)



All the rest was ported nicely (included Open Asset, for Colored Coins and Stealth address support)

The unit tests being also ported, I can assure you that there is no breaking change.



A portable lib is nice, but it means I could not include goodness of native plateforms into the code.

This is why other plateform specific NBitcoin version will be shipped in next months and include some plateform specific feature.

In fact, I have already done that for Android. (To configure the RNG automatically)



What's next ?



-Support for .NET Micro framework, so you can make the Internet Of Things with Bitcoin comes true, and create your hand made trezor (here is what can be done

-Plateform specific versions, for ease of use.

-Windows Phone 8.0 support



Now is the time to innovate !

Who said that the .NET world doesn't embrace open source ?



If any problem or feedback, you can go on github.



A reminder of NBitcoin feature that I could port :



Build and Sign transactions of all types easily (TransactionBuilder see link below)

Parsing of all Bitcoin related data structure (block, transaction, address, and all kind of base58 data)

HD keys

BIP38

multi sig, p2pkh, p2pk, and all P2SH versions of them

Script creation, parsing and evaluation

Open Asset

Stealth Address

Some article relevant to what can be done :



NBitcoin Github :



NBitcoin Nuget :



Intro :



How to build transaction (TransactionBuilder) :



Stealth Payment, and BIP38 : Today, I am glad to announce the portable release of NBitcoin on nuget.That you can share your .NET code across several plateform painlessly with Xamarin.That you can use a complete Bitcoin framework on Mac, android, IOS, Windows Everything all distributed with nuget.If you are using Visual Studio, then it is as simple as runningOn your project, nuget will figure the most feature complete version of NBitcoin for your plateform automatically.Making NBitcoin works accross all plateform, made me create a version supporting Portable Profile111 and Profile259 (111 + wp8).It means that I needed to strip a few things, to isolate the common denominator :-Bitcoin Network connection (Because there is no socket support in this profile)-Payment (BIP70) (Because it depends on Protobuf that is not portable on profile111, and because profile111 does not support X509Certificate2 either)-You will need to configure the plateform specific RNG depending on the plateform. (RandomUtils.Random, use the UnsecureRandom, if you don't care about a good RNG, NBitcoin use Deterministic signatures)All the rest was ported nicely (included Open Asset, for Colored Coins and Stealth address support)The unit tests being also ported, I can assure you that there is no breaking change.A portable lib is nice, but it means I could not include goodness of native plateforms into the code.This is why other plateform specific NBitcoin version will be shipped in next months and include some plateform specific feature.In fact, I have already done that for Android. (To configure the RNG automatically)-Support for .NET Micro framework, so you can make the Internet Of Things with Bitcoin comes true, and create your hand made trezor (here is what can be done http://www.codeproject.com/Articles/657218/Upgrading-your-car-with-NET-Micro-Framework -Plateform specific versions, for ease of use.Now is the time to innovate !Who said that the .NET world doesn't embrace open source ?If any problem or feedback, you can go on github.NBitcoin Github : https://github.com/NicolasDorier/NBitcoin NBitcoin Nuget : https://www.nuget.org/packages/NBitcoin/ Intro : http://www.codeproject.com/Articles/768412/NBitcoin-The-most-complete-Bitcoin-port-Part-Crypt How to build transaction (TransactionBuilder) : http://www.codeproject.com/Articles/835098/NBitcoin-Build-Them-All Stealth Payment, and BIP38 : http://www.codeproject.com/Articles/775226/NBitcoin-Cryptography-Part Bitcoin address 15sYbVpRh6dyWycZMwPdxJWD4xbfxReeHe