/ CHANGELOG.md
CHANGELOG.md
  1  <!--
  2  # v0.X.Y | WIP
  3  ![Image of the kibo Web App version 0.X.Y](https://github.com/kibo-money/kibo/blob/main/_assets/v0.X.Y.jpg)
  4  -->
  5  
  6  # v0.X.0 | WIP | A new beginning
  7  
  8  Full rewrite
  9  
 10  # [kibo-v0.5.0](https://github.com/kibo-money/kibo/tree/eea56d394bf92c62c81da8b78b8c47ea730683f5) | [873199](https://mempool.space/block/0000000000000000000270925aa6a565be92e13164565a3f7994ca1966e48050) - 2024/12/04
 11  
 12  ![Image of the kibo Web App version 0.5.0](https://github.com/kibo-money/kibo/blob/main/_assets/v0.5.0.jpg)
 13  
 14  ## Datasets
 15  
 16  - Added `Sell Side Risk Ratio` to all entities
 17  - Added `Open`, `High` and `Low` datasets
 18  - Added `Satoshis Per Dollar`
 19  - Added `All Time High`
 20  - Added `All Time High Date`
 21  - Added `Days Since All Time High`
 22  - Added `Max Days Between All Time Highs`
 23  - Added `Max Years Between All Time Highs`
 24  - Added `Drawdown`
 25  - Added `Adjusted Value Created`, `Adjusted Value Destroyed` and `Adjusted Spent Output Profit Ratio` to all entities
 26  - Added `Realized Profit To Loss Ratio` to all entities
 27  - Added `Hash Price Min`
 28  - Added `Hash Price Rebound`
 29  - Removed all year datasets (25) in favor for epoch datasets (5), the former was too granular to be really useful
 30  - Removed datasets split by liquidity for all datasets **already split by any address kind**, while fun to have, they took time to compute, ram, and space to store and no one was actually checking them
 31  - Fixed a lot of values in split by liquidity datasets
 32  
 33  ## Website
 34  
 35  - Updated the design yet again which made the website for something more minimal and easier on the eyes
 36  - Added a *Save In Bitcoin* (DCA) simulation page
 37  - ~Added a dashboard~ Added the latest values to the tree next to each option instead, while less values are visible at a time, it's much more readable and organised
 38  - Added a library of PDFs
 39  - Fixed service worker not passing 304 (not modified) response and instead serving cached responses
 40  - Fixed history not being properly registered
 41  - Fixed window being moveable on iOS when in standalone mode when it shouldn't be
 42  - Added `Compare` section to all groups, to compare all datasets within a group
 43  - Updated `Solid Signals` library, which had an important breaking change on the `createEffect` function which might bring some bugs
 44  - Fixed some datasets paths
 45  - A lot of code reorg and file splits
 46  - Adopted a framework like approach to load pages while still being pure JS without a build step
 47  - Probably more that was forgotten
 48  
 49  ## Parser
 50  
 51  - Added a `/datasets/last` json file with all the latest values
 52  - Added `--rpcconnect` parameter to the config
 53  - Added handling of SIGINT and SIGTERM terminal signals which menas you can now safely CTRL+C or kill the parser while it's exporting
 54  - Added config print at the start of the program
 55  - Compressed `empty_address_data` struct to save space (should shave of between up to 50% of the `address_index_to_empty_address_data` database)
 56  - Doubled the number of `txid_to_tx_data` databases from 4096 to 8192
 57  - ~Added `--recompute_computed true` argument, to allow recomputation of computed datasets in case of a bug~ Buggy for now
 58  - Fixed not saved arguments, not being processed properly
 59  - Fixed bug in `generic_map.multi_insert_simple_average`
 60  - Added defragmentation option `--first-defragment true` of databases to save space (which can save up to 50%)
 61  - Fixed bug in the computation of averages in `GenericMap`
 62  - Added support and paramer for cookie files with `--rpccookiefile`, and auto find if the path is `--datadir/.cookie`
 63  - Increased number of retries and time between them when fetching price from exchanges APIs
 64  
 65  ## Server
 66  
 67  - Fixed links in several places missing the `/api` part and thus not working
 68  - Fixed broken last values routes
 69  - Added support for the `/datasets/last` file via the `/api/last` route
 70  - Added support for `.json` (won't change anything) and `.csv` (will download a csv file) extension at the end of datasets routes
 71  - Added `all=true` query parameter to dataset routes to get to full history
 72  
 73  ## Biter
 74  
 75  - Moved back to this repo
 76  
 77  # [kibo-v0.4.0](https://github.com/kibo-money/kibo/tree/a64c544815d9ef785e2fc1323582f774f16b9200) | [861950](https://mempool.space/block/00000000000000000000530d0e30ccf7deeace122dcc99f2668a06c6dad83629) - 2024/09/19
 78  
 79  ![Image of the kibo Web App version 0.4.0](https://github.com/kibo-money/kibo/blob/main/_assets/v0.4.0.jpg)
 80  
 81  ## Brand
 82  
 83  - **Satonomics** is now **kibo** 🎉
 84  
 85  ## Website
 86  
 87  - Complete redesign of the website
 88  - Rewrote the whole application and removed `node`/`npm`/`pnpm` dependencies in favor for pure `HTML`/`CSS`/`Javascript`
 89  - Website is now served by the server
 90  - Added Trading View attribution link to the settings frame and file in the lightweight charts folder
 91  - Many other changes
 92  
 93  ## Parser
 94  
 95  - Changed the block iterator from a custom version of [bitcoin-explorer](https://crates.io/crates/bitcoin-explorer) to the homemade [biter](https://crates.io/crates/biter) which allows the parser to run alongside `bitcoind`
 96  - Added datasets compression thanks to [zstd](https://crates.io/crates/zstd) to reduce disk usage
 97  - Use the Bitcoin RPC server for various calls instead of running cli commands and then parsing the JSON from the output
 98  - **Important database changes that will need a full rescan**:
 99    - Changed databases page size from 1MB to 4KB for improved disk usage
100    - Split txid_to_tx_data database in 4096 chunks (from 256) for improved disk usage
101    - Split address_index_to_X databases to chunks of 25_000 instead of 50_000
102    - Removed local Multisig database
103  - Updated the config, run with `-h` to see possible args
104  - Moved outputs from `/target/outputs` to `/out` to allow to run commands like `cargo clean` without side effects
105  - Various first run fixes
106  - Added to `-h` which arguments are saved, which is all of them at the time of writing
107  
108  ## Server
109  
110  - Updated the code to support compressed binaries
111  - Added serving of the website
112  - Improved `Cache-Control` behavior
113  
114  # [kibo-v0.3.0](https://github.com/kibo-money/kibo/tree/b68b016091c45b071218fba01bac5b76e8eaf18c) | [853930](https://mempool.space/block/00000000000000000002eb5e9a7950ca2d5d98bd1ed28fc9098aa630d417985d) - 2024/07/26
115  
116  ![Image of the Satonomics Web App version 0.3.0](https://github.com/kibo-money/kibo/blob/main/_assets/v0.3.0.jpg)
117  
118  ## Parser
119  
120  - Global
121    - Improved self-hosting by:
122      - Fixing an incredibly annoying bug that made the program panic because of a wrong utxo/address durable state after a or many new datasets were added/changed after a first successful parse of the chain
123      - Fixing a bug that would crash the program if launched for the first time ever
124      - Auto fetch prices from the main Satonomics instance if missing instead of only trying Kraken's and Binance's API which are limited to the last 16 hours
125    - Merged the core of `HeightMap` and `DateMap` structs into `GenericMap`
126    - Added `Height` struct and many others
127    - Reorganized outputs of both the parser and the server for ease of use and easier sync compatibility
128  - CLI
129    - Added an argument parser for improved UX with several options
130  - Datasets
131    - Added the following datasets for all entities:
132      - Value destroyed
133      - Value created
134      - Spent Output Profit Ratio (SOPR)
135    - Added the following ratio datasets and their variations to all prices {realized, moving average, any cointime, etc}:
136      - Market Price to {X}
137      - Market Price to {X} Ratio
138      - Market Price to {X} Ratio 1 Week SMA
139      - Market Price to {X} Ratio 1 Month SMA
140      - Market Price to {X} Ratio 1 Year SMA
141      - Market Price to {X} Ratio 1 Year SMA Momentum Oscillator
142      - Market Price to {X} Ratio 99th Percentile
143      - Market Price to {X} Ratio 99.5th Percentile
144      - Market Price to {X} Ratio 99.9th Percentile
145      - Market Price to {X} Ratio 1st Percentile
146      - Market Price to {X} Ratio 0.5th Percentile
147      - {X} 1% Top Probability
148      - {X} 0.5% Top Probability
149      - {X} 0.1% Top Probability
150      - {X} 1% Bottom Probability
151      - {X} 0.5% Bottom Probability
152      - {X} 0.1% Bottom Probability
153    - Added block metadatasets and their variants (raw/sum/average/min/max/percentiles):
154      - Block size
155      - Block weight
156      - Block VBytes
157      - Block interval
158  - Price
159    - Improved error message when price cannot be found
160  
161  ## App
162  
163  - General
164    - Added chart scroll button for nice animations à la Wicked
165    - Added scale mode switch (Linear/Logarithmic) at the bottom right of all charts
166    - Added unit at the top left of all charts
167    - Added a backup API in case the main one fails or is offline
168    - Complete redesign of the datasets object
169    - Removed import of routes in JSON in favor for hardcoded typed routes in string format which resulted in:
170      - \+ A much lighter app
171      - \+ Better Lighthouse score
172      - \- Slower Typescript server
173    - Fixed datasets with null values crashing their fetch function
174    - Added a 'Go to a random chart' button in several places
175  - Chart
176    - Fixed series color being set to default ones after hovering the legend
177    - Fixed chart starting showing candlesticks and quickly switching to a line when it should've started directly with the line
178    - Separated the QRCode generator library from the main chunk and made it imported on click
179    - Fixed timescale changing on small screen after changing charts
180  - Folders
181    - Added the size in the "filename" of address cohorts grouped by size
182  - Favorites
183    - Added a 'favorite' and 'unfavorite' button at the bottom
184  - Settings
185    - Removed the horizontal scroll bar which was unintended
186  
187  ## Server
188  
189  - Run file
190    - Only run with a watcher if `cargo watch` is available
191    - Removed id_to_path file in favor for only `paths.d.ts` in `app/src/types`
192  
193  # [kibo-v0.2.0](https://github.com/kibo-money/kibo/tree/248187889283597c5dbb806292297453c25e97b8) | [851286](https://mempool.space/block/0000000000000000000281ca7f1bf8c50702bfca168c7af1bdc67c977c1ac8ed) - 2024/07/08
194  
195  ![Image of the Satonomics Web App version 0.2.0](https://github.com/kibo-money/kibo/blob/main/_assets/v0.2.0.jpg)
196  
197  ## App
198  
199  - General
200    - Added the height version of all datasets and many optimizations to make them usable but only available on desktop and tablets for now
201    - Added a light theme
202  - Charts
203    - Added split panes in order to have the vertical axis visible for all datasets
204    - Added min and max values on the charts
205    - Fixed legend hovering on mobile not resetting on touch end
206    - Added "3 months" and yearly time scale setters (from year 2009 to today)
207    - Hide scrollbar of timescale setters and instead added scroll buttons to the legend only visible on desktop
208    - Improved Share/QR Code screen
209    - Changed all Area series to Line series
210    - Fixed horizontal scrollable legend not updating on preset change
211  - Performance
212    - Improved app's reactivity
213    - Added some chunk splitting for a faster initial load
214    - Global improvements that increased the Lighthouse's performance score
215  - Settings
216    - Finally made a proper component where you can chose the app's theme, between a moving or static background and its text opacity
217    - Added donations section with a leaderboard
218    - Added various links that are visible on the bottom side of the strip on desktop to mobile users
219    - Added install instructions when not installed for Apple users
220  - Misc
221    - Support mini window size, could be useful for embedded views
222    - Hopefully made scrollbars a little more subtle on WIndows and Linux, can't test
223    - Generale style updates
224  
225  ## Parser
226  
227  - Fixed ulimit only being run in Mac OS instead of whenever the program is detected
228  
229  # [kibo-v0.1.1](https://github.com/kibo-money/kibo/tree/e55b5195a9de9aea306903c94ed63cb1720fda5f) | [849240](https://mempool.space/block/000000000000000000002b8653988655071c07bb5f7181c038f9326bc86db741) - 2024/06/24
230  
231  ![Image of the Satonomics Web App version 0.1.1](https://github.com/kibo-money/kibo/blob/main/_assets/v0.1.1.jpg)
232  
233  ## Parser
234  
235  - Fixed overflow in `Price` struct which caused many Realized Caps and Realized Prices to have completely bogus data
236  - Fixed Realized Cap computation which was using rounded prices instead normal ones
237  
238  ## Server
239  
240  - Added the chunk, date and time of the request to the terminal logs
241  
242  ## App
243  
244  - Chart
245    - Added double click option on a legend to toggle the visibility of all other series
246    - Added highlight effect to a legend by darkening the color of all the other series on the chart while hovering it with the mouse
247    - Added an API link in the legend for each dataset where applicable (when isn't generated locally)
248    - Save fullscreen preference in local storage and url
249    - Improved resize bar on desktop
250    - Changed resize button logo
251    - Changed the share button to visible on small screen too
252    - Improved share screen
253    - Fixed time range shifting not being the one in url params or saved in local storage
254    - Fixed time range shifting on series toggling via the legend
255    - Fixed time range shifting on fullscreen
256    - Fixed time range shifting on resize of the sidebar
257    - Set default view at first load to last 6 months
258    - Added some padding around the datasets (year 1970 to 2100)
259  - History
260    - Changed background for the sticky dates from blur to a solid color as it didn't appear properly in Firefox
261  - Build
262    - Tried to add lazy loads to have split chunks after build, to have much faster load times and they worked great ! But they completely broke Safari on iOS, we can't have nice things
263    - Removed many libraries and did some things manually instead to improve build size
264  - Strip
265    - Temporarily removed the Home button on the strip bar on desktop as there is no landing page yet
266  - Settings
267    - Added version
268  - PWA
269    - Fixed background update
270    - Changed update check frequency to 1 minute (~1kb to fetch every minute which is very reasonable)
271    - Added a nice banner to ask the user to install the update
272  - Misc
273    - Removed tracker even though it was a very privacy friendly as it appeared to not be working properly
274  
275  ## Price
276  
277  - Deleted old price datasets and their backups
278  
279  # [kibo-v0.1.0](https://github.com/kibo-money/kibo/tree/a1a576d088c8f83ed32d48753a7611f70a964574) | [848642](https://mempool.space/block/000000000000000000020be5761d70751252219a9557f55e91ecdfb86c4e026a) - 2024/06/19
280  
281  ![Image of the Satonomics Web App version 0.1.0](https://github.com/kibo-money/kibo/blob/main/_assets/v0.1.0.jpg)
282  
283  # kibo-v0.0.1 | [835444](https://mempool.space/block/000000000000000000009f93907a0dd83c080d5585cc7ec82c076d45f6d7c872) - 2024/03/20
284  
285  ![Image of the Satonomics Web App version 0.0.X](https://github.com/kibo-money/kibo/blob/main/_assets/v0.0.X.jpg)