README.md in zold-0.29.27 vs README.md in zold-0.29.28
- old
+ new
@@ -13,24 +13,43 @@
[![Gem Version](https://badge.fury.io/rb/zold.svg)](http://badge.fury.io/rb/zold)
[![Test Coverage](https://img.shields.io/codecov/c/github/zold-io/zold.svg)](https://codecov.io/github/zold-io/zold?branch=master)
[![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://rubydoc.info/github/zold-io/zold/master/frames)
[![Maintainability](https://api.codeclimate.com/v1/badges/2861728929db934eb376/maintainability)](https://codeclimate.com/github/zold-io/zold/maintainability)
+[![Hits-of-Code](https://hitsofcode.com/github/zold-io/zold)](https://hitsofcode.com/github/zold-io/zold)
-**NOTICE**: It's an experiment and a very early draft! Please, feel free to
-submit your ideas and/or pull requests.
+To understand what Zold cryptocurrency is about you may want
+to watch [this video](https://youtu.be/5A9uBwMow0M) first. Then, you may
+want to read [this blog](https://blog.zold.io/2018/07/08/mission.html) post.
+Then, you have to read the [Green Paper](https://papers.zold.io/green-paper.pdf)
+(just four pages). In a nutshell, Zold is a cryptocurrency with the following
+features:
-Here is the [White Paper](https://papers.zold.io/wp.pdf).
+ * No Blockchain
+ * No General Ledger
+ * Very fast, because de-centralized
+ * 100 times cheaper than Bitcoin
+ * Proof-of-work
+ * Unique consensus protocol
+ * Pre-mined with total capacity of 2 billion ZLD
+ * Anonymous
+ * Written in Ruby
+More details you can find in the [White Paper](https://papers.zold.io/wp.pdf).
+
+You can also find us at the [Bitcointalk](https://bitcointalk.org/index.php?topic=5095078) forum.
+
Join our [Telegram group](https://t.me/zold_io) to discuss it all live.
The license is [MIT](https://github.com/zold-io/zold/blob/master/LICENSE.txt).
-The web wallet is here: [wts.zold.io](https://wts.zold.io).
-
## How to Use
+You can try the web wallet [here](https://wts.zold.io), but the best way
+to use Zold is through the command line tool, which has all the features
+and should remind you Git, if you are a programmer.
+
First, install [Ruby 2.3+](https://www.ruby-lang.org/en/documentation/installation/),
[Rubygems](https://rubygems.org/pages/download), and
the [gem](https://rubygems.org/gems/zold).
Here is [how](https://github.com/zold-io/zold/blob/master/INSTALL.md).
@@ -188,11 +207,11 @@
> Is there a way to increase the number of threads in order to maximize computing power of multiple core machines?
Yes, you can use `--threads` command line argument for your node
and the number of threads will be as big as you wish.
-## JSON Details
+## Front-end JSON Details
When you open up the front web page of your node, you will see a JSON document
with a lot of technical details. Here is the explanation of the majority of them:
`version` is the current version of the running software.
@@ -268,9 +287,91 @@
To be continued...
`date` is the current date and time on the server.
`hours_alive` is the time in hours your server is alive without a reboot.
+
+## HTTP RESTful API
+
+Well, maybe it's not purely RESTful, but each node has a simple
+set of HTTP entry points, which you can use to retrieve information
+about wallets, node status, log details, and some other things. Here
+is a more or less complete list of them:
+
+ * `GET /`: returns the JSON explained above
+
+ * `GET /score`: returns the text presentation of the current Score
+
+ * `GET /version`: returns the version of the software
+
+ * `GET /protocol`: returns the protocol ID
+
+ * `GET /wallet/ID`: returns the JSON with wallet details
+
+ * `GET /wallet/ID/balance`: returns wallet balance in zents (text/plain)
+
+ * `GET /wallet/ID/key`: returns wallet public RSA key
+
+ * `GET /wallet/ID/mtime`: returns ISO-8601 time of wallet file modification
+
+ * `GET /wallet/ID/size`: returns the size of the wallet file in bytes
+
+ * `GET /wallet/ID/age`: returns the age of the wallet, in seconds
+
+ * `GET /wallet/ID/txns`: returns the amount of transactions in the wallet
+
+ * `GET /wallet/ID/debt`: returns the tax debt of the wallet in zents
+
+ * `GET /wallet/ID/digest`: returns SHA-256 digest of the wallet file
+
+ * `GET /wallet/ID/mnemo`: returns the mnemo short string of the wallet
+
+ * `GET /wallet/ID/txns.json`: returns the full list of transactions in the wallet in JSON document
+
+ * `GET /wallet/ID.txt`: returns the text presentation of the wallet
+
+ * `GET /wallet/ID.html`: returns the HTML presentation of the wallet
+
+ * `GET /wallet/ID.bin`: returns the entire wallet file
+
+ * `GET /wallet/ID/copies`: returns the list of copies of the wallet
+
+ * `GET /wallet/ID/copy/NAME`: returns the entire content of a single copy of the wallet
+
+ * `PUT /wallet/ID`: accepts a new content of the wallet, in order to
+ modify the one stored on the server (PUSH operation)
+
+ * `GET /wallets`: returns the list of all wallets maintained by the node,
+ in plain text, separated by EOL
+
+ * `GET /remotes`: returns the list of remote nodes in JSON
+
+ * `GET /ledger`: returns the list of recently visible transactions
+
+ * `GET /ledger.json`: returns the list of recently visible transactions, in JSON
+
+There are a few other entry points, which exist most for debugging purposes,
+they may not be supported by alternative implementations of the node software:
+
+ * `GET /pid`: returns the process ID of the software
+
+ * `GET /trace`: returns the entire log of the node
+
+ * `GET /farm`: returns the statistics of the Farm
+
+ * `GET /metronome`: returns the statistics of the Metronome
+
+ * `GET /threads`: returns the statistics of all Ruby threads
+
+ * `GET /ps`: returns the statistics of all currently running Unix processes
+
+ * `GET /queue`: returns the statistics of the node queue
+
+ * `GET /journal`: returns the journal, in HTML
+
+ * `GET /journal/item?id=ID`: returns the content of a single journal entry
+
+There could be other entry points, not documented here.
## SDK
Here is how you use Zold SDK from your Ruby app. First, you should
add `zold` [gem](https://rubygems.org/gems/zold)