Bitcoin Forum
February 28, 2020, 11:47:30 PM *
News: Latest Bitcoin Core release: 0.19.0.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Help choose a name for this library...  (Read 179 times)
Coding Enthusiast
Hero Member
*****
Offline Offline

Activity: 751
Merit: 1413


Novice C♯ Coder


View Profile WWW
October 12, 2018, 07:29:45 AM
Merited by suchmoon (4), NeuroticFish (3), OmegaStarScream (3), eternalgloom (2), ETFbitcoin (1), Piggy (1)
 #1

(Not sure whether to post this in off-topic board?)

TL;DR.
Current library name: SharpCryptoLibrary
What it does: A .Net library focusing on being stand alone, fast, documented, fully tested and used for as many cryptocurrencies as possible while being able to do anything such as creating a wallet, full/SPV node, writing smart contracts,...

I prefer using consistency which is why the name "Sharp..." was chosen, and since this is written fully in C♯. So I'd prefer to keep the name this way. Maybe the current name is good but I though a brainstorming here wouldn't hurt.


Some explanation about the focus of this library:
1. Basically I am learning and enjoying the cryptocurrency world and related topics. And as I learn more about it, I develop this library as a way to have a deeper understanding of the technology while creating a useful tool. Although many libraries already exist, I feel like there is still many features lacking.

2. One of the main focuses is being stand alone. Meaning no external libraries will be used for any operations. This has advantages and disadvantages. The positive part is that there will be no need for downloading a third party huge library to only use a small part of it (eg. Bouncy Castle for E.C.C.) and this makes it very flexible. But the negative part is that the library is going to be as good as "I" make it so obviously it may not be as secure (hopefully it becomes secure one day after extensive testing and review).

3. Another main focus is the usage of each function for almost every cryptocurrency that exists, while making it easy to extend it to new coins with custom settings. This includes:
- bitcoin and all of its forks (bitcoin-something, litecoin, dogecoin,...) which use the same transactions, same cryptography schemes (secp256k1 curve), same way of communication, encoding,...
- and will extend to other coins that are not forks but are similar (XRP, ETH,...) that use different encoding techniques (KECCAK for ethereum), and sometimes different curves (secp256r1 and some others),...
- and coins that are very different (IOTA,...) that are are very different (Winternitz hash-based cryptography in case of IOTA).

4. Thanks to Microsoft's recent(ish) move to make .Net framework multi platform you would be able to build applications for any platform from Windows to linux and smart phones. All using the same library.

5. Another focus/goal is to have everything neatly categorized and fully documented. So that it would be easier to find a desired function and know right away what it does and what it needs. Current categories are:
- BIPs: which is every Bitcoin Improvement protocol created (only 10% covered so far)
- Blockchain: everything related to blockchain including blocks, transactions, (de)serialization, verification, scripting, smart contract,...
- Coins: cryptocurrencies and their settings used to feed the functions through dependency injection.
- ECC: everything related to Elliptic Curve Cryptography such as calculation, modular arithmetic, primality test (so that you can create any custom Elliptic Curve that is not defined by SEC2),...
- Encoders: any baseX encoding used, DER encoding, encryption such as AES used for wallet storage,...
- Extensions: simple extension classes to be used throughout the library to make things simpler.
- Hashing: contains hash function wrappers for SHA and a stand alone implementation of RIPEMD160
- KeyPairs: responsible for key pairs! private/public keys and addresses
- P2PNetwork: responsible for the communication protocol used by nodes.
(I mentioned the categories here so that if you have any suggestions about where things should be you can tell me, also if I am missing something that I haven't covered feel free to post below).
Example of how the documentation would look like:


The library is far from finished. There is a lot of work remaining to do and a lot more tests to write and some parts need to have their security improved (such as PrivateKey class and the modular arithmetic used for ECC). I think about roughly 30% of the work is done with about 80% of it being covered by extensive unit tests.

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.1.1)Ann-git
Denovo(0.0.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.1.0)Ann-git
SharpPusher(0.10.0)Ann-git
1582933650
Hero Member
*
Offline Offline

Posts: 1582933650

View Profile Personal Message (Offline)

Ignore
1582933650
Reply with quote  #2

1582933650
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1582933650
Hero Member
*
Offline Offline

Posts: 1582933650

View Profile Personal Message (Offline)

Ignore
1582933650
Reply with quote  #2

1582933650
Report to moderator
1582933650
Hero Member
*
Offline Offline

Posts: 1582933650

View Profile Personal Message (Offline)

Ignore
1582933650
Reply with quote  #2

1582933650
Report to moderator
1582933650
Hero Member
*
Offline Offline

Posts: 1582933650

View Profile Personal Message (Offline)

Ignore
1582933650
Reply with quote  #2

1582933650
Report to moderator
NeuroticFish
Legendary
*
Offline Offline

Activity: 2142
Merit: 1496


First 100% Liquid Stablecoin Backed by Gold


View Profile
October 12, 2018, 07:41:36 AM
Merited by Coding Enthusiast (2)
 #2

First of all congrats for the idea and for the work done.

Now about the naming. I'll post some ideas:

* I would ditch Sharp and I'd put NET (or .NET) in it somewhere. My logic is that when somebody is using a library it doesn't matter the language, since the developer will most likely just use the binaries, instead the framework is important (I've just been looking a couple of days ago for a certain type of library and I had to look in multiple places to find out which libraries were NOT for for .NET, since I wanted to use it in an older MFC proggy).

* Crypto may not cover it well and may be misleading. You library is about cryptocurrencies, not about cryptography. So CryptoCoin could be more appropriate.

And my proposal: CryptoCoinLib.NET

Piggy
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1407



View Profile WWW
October 12, 2018, 06:00:21 PM
 #3

Quite a project you got there Smiley are you planning to open the source code? If you do perhaps you will find people willing to help, but depends from what plans you have in mind for this library.

I don't have a name for you, maybe you can play somehow with the concept of "swiss army knife", it seems kind of appropriate.
davis196
Hero Member
*****
Offline Offline

Activity: 1442
Merit: 565



View Profile
October 13, 2018, 11:35:57 AM
 #4

My proposal for a name of your library is:

Libracrypt

It kinda sounds cool to me.It doesn't contain "Sharp",because I think that having a long name with more than 10 characters just isn't memorable and doesn't sound cool.The best brands usually have short and easy to remember names.
Good luck with your project.


.
.
.
▄███████████████████▄
█████████████████████
████████████▀▀░░░░███
███████████▌░░░░░░███
███████████░░░░██████
███████████░░░░██████
████████░░░░░░░░░░▐██
████████░░░░░░░░░░███

███████████░░░░██████

███████████░░░░██████

███████████░░░░██████

███████████░░░░██████

▀██████████░░░░█████▀
▄███████████████████▄
█████████████████████
█████████████████████
████▀██████▀░░░▀▀▄███
████░░▀▀███░░░░░░▄███
████▀░░░░░░░░░░░▐████
████▄░░░░░░░░░░░█████
█████▀░░░░░░░░░▄█████

████▀█▄░░░░░░░▄██████

█████▄░░░░░▄▄████████

█████████████████████

█████████████████████

▀███████████████████▀
▄███████████████████▄
█████▀▀▀▀▀▀▀▀▀▀▀█████
███░░░▄▄▄▄▄▄▄▄▄░░░███
██░░▄█████████▀▀▄░░██
██░░███▀▀░░░▀▀▄▄█░░██
██░░██▀░▄███▄░▀██░░██
██░░██░░█████░░██░░██
██░░██▄░▀███▀░▄██░░██

██░░███▄▄░░░▄▄███░░██

██░░▀███████████▀░░██

███░░░▀▀▀▀▀▀▀▀▀░░░███

█████▄▄▄▄▄▄▄▄▄▄▄█████

▀███████████████████▀
▄███████████████████▄
█████████████████████
█████████████████████
██████████████▀▀▀████
██████████▀▀░░░░▐████
██████▀▀░░░▄▀░░░█████
████░░░░▄▄▀░░░░▐█████
██████▄▐█░░░░░░██████

███████▌▌░░░░░▐██████

████████▄██▄▄░███████

█████████████████████

█████████████████████

▀███████████████████▀
.
XLadyX
Copper Member
Jr. Member
*
Offline Offline

Activity: 73
Merit: 1


View Profile
October 13, 2018, 11:43:16 AM
 #5

Wow. This project is cool and should Garner interest soon enough.

What about CryptoLib? BlockoLib (this sounds somehow I know), LibraDapps... I'm not good with names. Good luck with your project.
Coding Enthusiast
Hero Member
*****
Offline Offline

Activity: 751
Merit: 1413


Novice C♯ Coder


View Profile WWW
October 13, 2018, 04:29:40 PM
 #6

Quite a project you got there Smiley are you planning to open the source code?

Of course. That has always been my goal. I usually release them under MIT license to make it easier for anyone to use without worrying. This library is in its early stages but so far I am very pleased with my progress and design. Hopefully I don't encounter any unsolvable problems.


I appreciate all the suggestions. Keep them coming...

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.1.1)Ann-git
Denovo(0.0.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.1.0)Ann-git
SharpPusher(0.10.0)Ann-git
Piggy
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1407



View Profile WWW
October 13, 2018, 06:32:23 PM
 #7

Quite a project you got there Smiley are you planning to open the source code?

Of course. That has always been my goal. I usually release them under MIT license to make it easier for anyone to use without worrying. This library is in its early stages but so far I am very pleased with my progress and design. Hopefully I don't encounter any unsolvable problems.


I appreciate all the suggestions. Keep them coming...

Good to hear that Smiley if you are already hosting the code somewhere publicly online, i would be happy to have a look and try it at a certain point. Beside of course following the progress.
john@wwwatch
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile WWW
October 13, 2018, 08:20:16 PM
 #8

Interesting project, but I'd suggest you to find some unique, few characters name rather than using keyword names.


Perhaps: libsharp, Sharpli/Sharply, Shar/pto (crypto), Crybrary/Crypbary (crypto library)

There are lot of possibilities, I named you some that first popped in my mind. Smiley
alko89
Jr. Member
*
Offline Offline

Activity: 151
Merit: 3


View Profile
October 14, 2018, 09:41:32 AM
 #9

How about Coins.NET?
acmakc12
Member
**
Offline Offline

Activity: 444
Merit: 17


View Profile
October 14, 2018, 10:12:13 AM
 #10

Very interesting idea, I wish you good luck in its implementation and promotion, I would prefer the version of the name: SharpStore or SharpCryptoStore
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!