From d13cccb3e5fe6415826700eaa03319a32291a88d Mon Sep 17 00:00:00 2001
From: mistakia <1823355+mistakia@users.noreply.github.com>
Date: Wed, 24 Apr 2024 10:45:07 -0400
Subject: [PATCH] docs: update `docs/getting-started-devs/getting-started.md`
libraries, small fixes
---
docs/getting-started-devs/getting-started.md | 88 ++++++++++++++++----
1 file changed, 74 insertions(+), 14 deletions(-)
diff --git a/docs/getting-started-devs/getting-started.md b/docs/getting-started-devs/getting-started.md
index bba4c1ab..cb890844 100644
--- a/docs/getting-started-devs/getting-started.md
+++ b/docs/getting-started-devs/getting-started.md
@@ -26,7 +26,7 @@ If you are interested in directly contributing to nano development or its ecosys
### Block-lattice
-The source of Nano's advantages comes from the structure of its ledger, a block-lattice. Every account has a blockchain (account-chain), where a "block" is a single operation that contains the entire state for that account (balance & representative). Thus, the latest block for each account (called a frontier) is all you need to know the current state for a given account.
+Nano's unique ledger structure, known as block-lattice, underpins its functionality. Each account has its own blockchain (account-chain), where each block is a single operation that contains the entire state for that account (balance & representative). Thus, the latest block for each account (called a frontier) is all you need to know the current state for a given account. Blocks belong to an account, thus only the private key holder can produce a valid block for that account.
### Account
@@ -61,7 +61,7 @@ A string that starts with `nano_` (previously `xrb_`), then has 52 characters wh
### Wallet ID
-Is just a local UUID that references a specific wallet (set of seed/private keys/info about them) in your node's local database file. Do not confuse this with a seed or private key.
+Is just a local UUID that references a specific wallet (set of seed/private keys/info about them) in the node's local database file (pertaining to the reference C++ node implementation). Do not confuse this with a seed or private key.
### Transactions
@@ -70,15 +70,15 @@ Given that an account's state can only be updated by the corresponding secret ke
1. **Send block**: the sender broadcasts an operation that deducts the balance of their account by the amount they are sending
2. **Receive block**: the receiver broadcasts an operation that references the sender's operation and increases the balance of their account by the amount sent to them
-Once the send block is confirmed by the network, the transaction is irreversible and the receiver can broadcast a receive block at any point in the future to update their balance and use the funds sent to them.
+Once the send block is confirmed by the network, the transaction is irreversible and the receiver can broadcast a receive block at any point in the future to update their balance and use the funds sent to them. Thus, the total amount of nano across send blocks without a corresponding receive block is referred to as a "Receivable Balance".
## Accessing the Network
The most common way to access the network is through RPC commands to either a local or public node.
- RPC Documentation
-- Public Nodes Tracker (nano.casa)
-- Public Nodes Tracker (somenano.com)
+- Public Nodes Tracker (nano.casa)
+- Public Nodes Tracker (somenano.com)
- [Running a node](/getting-started-devs/running-a-node)
## Basics
@@ -88,8 +88,8 @@ The most common way to access the network is through RPC commands to either a lo
In most situations, you'll want to derive an account from a seed and it's best to use an existing library. For a more comprehensive guide, view the key management section of the Official Integration Guides.
```js [g1:JavaScript]
-import { wallet } from 'nanocurrency-web'
-const wallet = wallet.generate()
+import { wallet as walletLib } from 'nanocurrency-web'
+const wallet = walletLib.generate()
```
```python [g1:Python]
@@ -100,12 +100,72 @@ account_id = nanolib.generate_account_id(seed, 0)
#### Libraries
-- nanolib — python
-- nanopy — python
-- nanook — ruby
-- nanocurrency-web — node.js / js
-- nanocurency-js — node.js / js
-- pippin — python (production wallet)
+##### Node.js / JavaScript
+
+| Name | Description |
+| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
+| [nanocurrency-web](https://github.com/numsu/nanocurrency-web-js) | Toolkit for Nano cryptocurrency client side offline integrations without requiring NodeJS functions |
+| [nanocurrency-js](https://github.com/marvinroger/nanocurrency-js) | 🔗 A toolkit for the Nano cryptocurrency, allowing you to derive keys, generate seeds, hashes, signatures, proofs of work and blocks. |
+| [Nano.js](https://github.com/WriteNaN/Nano.js) | Library to interact with the nano blockchain through javascript |
+
+##### Typescript
+
+| Name | Description |
+| ------------------------------------------------ | ------------------------------------------------------------------------ |
+| [nona-lib](https://github.com/tgerboui/nona-lib) | TypeScript library to simplify interactions with the Nano currency node. |
+
+##### Dart
+
+| Name | Description |
+| -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
+| [nanodart](https://github.com/nano-dart/nano-dart) | Dart library for the NANO and BANANO cryptocurrencies - supports key generation, signing, encryption, and more. |
+| [nanoutil](https://github.com/perishllc/nanoutil) | A Nano and Banano cryptocurrency library for the Dart programming language |
+
+##### Python
+
+| Name | Description |
+| --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
+| [nanolib](https://github.com/Matoking/nanolib) | Python library for working with the NANO cryptocurrency protocol |
+| [nanopy](https://github.com/npy0/nanopy) | Python implementation of NANO related functions |
+| [pippin](https://github.com/appditto/pippin_nano_wallet) | A high performance, lightweight alternative to the NANO Node developer wallet (includes production wallet) |
+| [nanohakase](https://github.com/stjet/nanohakase) | Nanohakase is a python library for the Nano cryptocurrency. It aims to be the simplest Nano library out there, and is a self fork of Bananopie |
+| [nano-rpc-py](https://github.com/gr0vity-dev/nano-rpc-py) | python library that dynamically generates methods based on a commands dictionary |
+
+##### Rust
+
+| Name | Description |
+| ----------------------------------------------------- | ----------------------------------------- |
+| [nanopyrs](https://github.com/expiredhotdog/nanopyrs) | Rust rewrite of the Python nanopy library |
+
+##### Ruby
+
+| Name | Description |
+| ----------------------------------------- | -------------------------------------------------------------------------------- |
+| [nanook](https://github.com/lukes/nanook) | Ruby library for making and receiving payments and managing a nano currency node |
+
+##### .NET
+
+| Name | Description |
+| -------------------------------------------------- | ----------------------- |
+| [Nano.NET](https://github.com/miguel1117/Nano.Net) | A .NET library for Nano |
+
+##### Java
+
+| Name | Description |
+| ----------------------------------------------- | --------------------------------------------------------- |
+| [jNano](https://github.com/nano-java/nano-java) | A comprehensive Java library for the Nano cryptocurrency. |
+
+##### Go
+
+| Name | Description |
+| --------------------------------------------- | ------------------------------------------------ |
+| [gonano](https://github.com/hectorchu/gonano) | Go language support for Nano, a digital currency |
+
+##### Swift
+
+| Name | Description |
+| ------------------------------------------------- | -------------------------------------------- |
+| [NanoSwift](https://github.com/Priva28/NanoSwift) | A Swift library for the Nano cryptocurrency. |
#### Notable RPC Commands
@@ -212,7 +272,7 @@ Once you have a node up and running the ledger should bootstrap from the network
## What to build
-- tip bots (NanoTipBot / nano_tipper_z / RedditTipBot / discord tip bot)
+- tip bots (NanoTipBot / nano_tipper_z / RedditTipBot / discord tip bot)
- integrate with gaming (Nano Plugin Unreal Engine 4)
- wallets (Nault / Natrium)
- merchant payment services