Author

Topic: Help choose a name for this library... (Read 271 times)

member
Activity: 504
Merit: 19
October 14, 2018, 05: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
jr. member
Activity: 150
Merit: 3
October 14, 2018, 04:41:32 AM
#9
How about Coins.NET?
newbie
Activity: 5
Merit: 0
October 13, 2018, 03: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
hero member
Activity: 784
Merit: 1416
October 13, 2018, 01: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.
legendary
Activity: 1042
Merit: 2805
Bitcoin and C♯ Enthusiast
October 13, 2018, 11:29:40 AM
#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...
copper member
Activity: 73
Merit: 1
October 13, 2018, 06: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.
hero member
Activity: 3150
Merit: 937
October 13, 2018, 06: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.

hero member
Activity: 784
Merit: 1416
October 12, 2018, 01: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.
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
October 12, 2018, 02:41:36 AM
#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
legendary
Activity: 1042
Merit: 2805
Bitcoin and C♯ Enthusiast
October 12, 2018, 02:29:45 AM
#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.
Jump to: