# Changelog v0.22.1

**URL:** <https://forum.storj.io/t/changelog-v0-22-1/2028>\
**Category:** STORJLINGS\
**Tags:** changelog, official-changelog\
**Created:** [October 3, 2019, 7:33pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028 "2019-10-03T19:33:34Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![littleskunk](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/littleskunk/32/63_2.png) [@littleskunk](https://forum.storj.io/u/littleskunk)\
**Post date:** [October 3, 2019, 7:33pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/1 "2019-10-03T19:33:34Z")

</div>

> **[storj/storj](https://github.com/storj/storj/releases/tag/v0.22.1)**
>
> Ongoing Storj v3 development. Decentralized cloud object storage that is affordable, easy to use, private, and secure. - storj/storj

**Database Migration**  
We split the sqlite3 db into multiple databases. The migration will needs several minutes to hours. Doing that time you can’t open the dashboard. Please be patient and wait for it to finish. You can watch the progress in the logfile.

**Windows Installer**  
We have an early version ready. It is not finished and not fully tested yet. So don’t use it for your storage nodes but if you feel like you want to be an early tester please take a look at [Windows Installer early test version](https://forum.storj.io/t/windows-installer-early-test-version/2037)

**Online Status**  
Storage nodes are sending a checkin message to the satellite once per hour. No other kademlia message that would reset the last contact on the dashboard. We have replaced it with an OFFLINE/ONLINE idicator. Online is everything that has received a message in the last 2 hours.  
Vetted nodes should get messages frequently and the idicator should work fine. Unvetted nodes might see OFFLINE after a restart for a few minutes because we designed the checkin methode in a way that storage nodes will not send a message on every restart (don’t DDOS the satellite)

**Repair Tests**  
The durability is working better than expected. Not a single repair was needed for a few month now. To make sure our calculations are correct we increase the repair threshold to force repair even if they are not needed. We expect the first repair traffic next week. Let us know if you see any strange behavior.

**GRPC Replacement**  
By default all storage nodes will use GRPC. We found out that GRPC is to heavy for our needs. It has some interesting side effects that we didn’t expect. We replace it with our own solution that we call D(Dump)RPC. Our plan is to run DRPC tests and activate DRPC with a future release. Again let us know if you see any strange behavior especially around uploads and downloads. I hope that we can run the first DRPC tests with the current release.

---

<div class="post-metadata">

**Author:** ![BrightSilence](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/brightsilence/32/6048_2.png) [@BrightSilence](https://forum.storj.io/u/BrightSilence)\
**Post date:** [October 3, 2019, 8:17pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/2 "2019-10-03T20:17:02Z")

</div>

> [@littleskunk](#):
>
> We split the sqlite3 db into multiple databases.

It seems you storjlings are intent on keeping me busy. This will definitely require a good bit of rework for the earnings calculator. 🙂

---

<div class="post-metadata">

**Author:** ![Alexey](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alexey/32/41_2.png) [@Alexey](https://forum.storj.io/u/Alexey)\
**Post date:** [October 3, 2019, 9:07pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/3 "2019-10-03T21:07:25Z")

</div>

A post was split to a new topic: [FATAL Unrecoverable error {“error”: “Error creating tables for master database on storagenode: migrate: storage node database error: migrate tables:: attempt to write a readonly database](https://forum.storj.io/t/fatal-unrecoverable-error-error-error-creating-tables-for-master-database-on-storagenode-migrate-storage-node-database-error-migrate-tables-attempt-to-write-a-readonly-database/2030)

---

<div class="post-metadata">

**Author:** ![littleskunk](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/littleskunk/32/63_2.png) [@littleskunk](https://forum.storj.io/u/littleskunk)\
**Post date:** [October 4, 2019, 12:27am UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/4 "2019-10-04T00:27:05Z")

</div>

> [@BrightSilence](#):
>
> It seems you storjlings are intent on keeping me busy.

Yes! That was the main reason for the change 😃

---

<div class="post-metadata">

**Author:** ![BrightSilence](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/brightsilence/32/6048_2.png) [@BrightSilence](https://forum.storj.io/u/BrightSilence)\
**Post date:** [October 4, 2019, 12:30am UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/5 "2019-10-04T00:30:22Z")

</div>

Only took me half an hour 😜 you can do better!

> [@Earnings calculator (Update 2023-12-05: v13.1.0 - Now with support for different payouts per satellite - Detailed earnings info and health status of your node, including vetting progress)](https://forum.storj.io/t/earnings-calculator-update-2019-10-04-v7-0-0/1794/12):
>
> Our Storj friends love to throw me curve balls with updates to the database structure for storagenodes. But they’re not getting me that easily! laughing v7.0.0 - Compatibility with split database Made the script compatible with the split up sqlite3 databases Changed readme to reflect the 3 databases required for the script to work

Looks like there are quite a few great updates in v0.22.1 though. No more Kademlia debug mess in the logs!

---

<div class="post-metadata">

**Author:** ![Odmin](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/odmin/32/92_2.png) [@Odmin](https://forum.storj.io/u/Odmin)\
**Post date:** [October 4, 2019, 5:03am UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/6 "2019-10-04T05:03:41Z")

</div>

My regular question, could you please update “[Public Road Map](https://storjlabs.aha.io/published/01ee405b4bd8d14208c5256d70d73a38?page=4)”? 🙂

---

<div class="post-metadata">

**Author:** ![sorry2xs](https://storj.bcdn.literatehosting.com/letter_avatar/sorry2xs/32/5_5575768a8748004e209b776fc1b2916d.png) [@sorry2xs](https://forum.storj.io/u/sorry2xs)\
**Post date:** [October 4, 2019, 11:54am UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/7 "2019-10-04T11:54:38Z")

</div>

is V 0.22.1 update only for windows nodes

---

<div class="post-metadata">

**Author:** ![nerdatwork](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/nerdatwork/32/1135_2.png) [@nerdatwork](https://forum.storj.io/u/nerdatwork)\
**Post date:** [October 4, 2019, 12:03pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/8 "2019-10-04T12:03:31Z")

</div>

What made you come to that conclusion ?

---

<div class="post-metadata">

**Author:** ![sorry2xs](https://storj.bcdn.literatehosting.com/letter_avatar/sorry2xs/32/5_5575768a8748004e209b776fc1b2916d.png) [@sorry2xs](https://forum.storj.io/u/sorry2xs)\
**Post date:** [October 4, 2019, 12:04pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/9 "2019-10-04T12:04:22Z")

</div>

the Mac OS node is still on V 0.21.4 15 hours after the windows node updated to V0.22.1

---

<div class="post-metadata">

**Author:** ![nerdatwork](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/nerdatwork/32/1135_2.png) [@nerdatwork](https://forum.storj.io/u/nerdatwork)\
**Post date:** [October 4, 2019, 12:08pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/10 "2019-10-04T12:08:02Z")

</div>

Watchtower command checks for updates every 6 hours if you notice the `--interval` flag

You should remove and add the watchtower as the older version 0.3.8 has been pushed.

> docker stop -t 300 watchtower  
> docker rm watchtower

Then use the watchtower command given in support docs

To check the status of containers use

> docker ps -a

---

<div class="post-metadata">

**Author:** ![sorry2xs](https://storj.bcdn.literatehosting.com/letter_avatar/sorry2xs/32/5_5575768a8748004e209b776fc1b2916d.png) [@sorry2xs](https://forum.storj.io/u/sorry2xs)\
**Post date:** [October 4, 2019, 12:51pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/11 "2019-10-04T12:51:06Z")

</div>

well I did I manual update but cli dashboard will not load and the same goes for web dashboard2019-10-04T12:46:44.180Z INFO Configuration loaded from: /app/config/config.yaml  
2019-10-04T12:46:44.223Z INFO Node ID: 1GYPBayDtCCPbrsARdCwPBLTz2S2MGNkdxQigoSnG7YLnEHPjp

---

<div class="post-metadata">

**Author:** ![nerdatwork](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/nerdatwork/32/1135_2.png) [@nerdatwork](https://forum.storj.io/u/nerdatwork)\
**Post date:** [October 4, 2019, 1:16pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/12 "2019-10-04T13:16:05Z")

</div>

> [@littleskunk](#):
>
> **Database Migration**  
> We split the sqlite3 db into multiple databases. The migration will needs several minutes to hours. Doing that time _ **you can’t open the dashboard** _. _Please be patient and wait for it to finish_

I think you missed that part.

---

<div class="post-metadata">

**Author:** ![sorry2xs](https://storj.bcdn.literatehosting.com/letter_avatar/sorry2xs/32/5_5575768a8748004e209b776fc1b2916d.png) [@sorry2xs](https://forum.storj.io/u/sorry2xs)\
**Post date:** [October 4, 2019, 1:30pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/13 "2019-10-04T13:30:25Z")

</div>

thanks patience is what it took

---

<div class="post-metadata">

**Author:** ![erosfabbri](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/erosfabbri/32/67_2.png) [@erosfabbri](https://forum.storj.io/u/erosfabbri)\
**Post date:** [October 4, 2019, 3:40pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/14 "2019-10-04T15:40:36Z")

</div>

why if last contact has been removed , it is still called “last contact” and not something like “status”?

---

<div class="post-metadata">

**Author:** ![nerdatwork](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/nerdatwork/32/1135_2.png) [@nerdatwork](https://forum.storj.io/u/nerdatwork)\
**Post date:** [October 4, 2019, 3:43pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/15 "2019-10-04T15:43:36Z")

</div>

Sounds like an idea which you can post on [ideas.storj.io](http://ideas.storj.io) 🙂

---

<div class="post-metadata">

**Author:** ![Odmin](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/odmin/32/92_2.png) [@Odmin](https://forum.storj.io/u/Odmin)\
**Post date:** [October 4, 2019, 7:34pm UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/16 "2019-10-04T19:34:44Z")

</div>

@littleskunk I and my router’s just say you Thank you very much! 🙂  
When Kademlia was removed, no ton of dns requests and tons of small packets 👍

---

<div class="post-metadata">

**Author:** ![Sasha](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/sasha/32/69_2.png) [@Sasha](https://forum.storj.io/u/Sasha)\
**Post date:** [October 8, 2019, 9:10am UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/17 "2019-10-08T09:10:37Z")

</div>

> [@littleskunk](#):
>
> **GRPC Replacement**  
> By default all storage nodes will use GRPC. We found out that GRPC is to heavy for our needs. It has some interesting side effects that we didn’t expect. We replace it with our own solution that we call D(Dump)RPC. Our plan is to run DRPC tests and activate DRPC with a future release. Again let us know if you see any strange behavior especially around uploads and downloads. I hope that we can run the first DRPC tests with the current release.

@littleskunk, what strange behavior would qualify? Can you give an example?

Would the upload started and upload failed instantly, qualify as strange behavior?

---

<div class="post-metadata">

**Author:** ![littleskunk](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/littleskunk/32/63_2.png) [@littleskunk](https://forum.storj.io/u/littleskunk)\
**Post date:** [October 8, 2019, 10:06am UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/18 "2019-10-08T10:06:14Z")

</div>

> [@Sasha](#):
>
> what strange behavior would qualify? Can you give an example?
> 
> Would the upload started and upload failed instantly, qualify as strange behavior?

By default all storage nodes are still using grpc. Maybe 1% uploads and download will be drpc. So I would say if you notice a pattern that happens on most of the uploads and downloads that is probably not drpc. If you get a new kind of error message once in a while or frequently but in a limitted time window that could be drpc. In general I am interested in finding bugs early even if that means I have to deal with a few unrelated bugs. So don’t worry if you error might be unrelated. I can deal with that.

---

<div class="post-metadata">

**Author:** ![Sasha](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/sasha/32/69_2.png) [@Sasha](https://forum.storj.io/u/Sasha)\
**Post date:** [October 8, 2019, 10:19am UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/19 "2019-10-08T10:19:55Z")

</div>

Looks like all my upload is grpc in the logs, no drpc at present.

---

<div class="post-metadata">

**Author:** ![Odmin](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/odmin/32/92_2.png) [@Odmin](https://forum.storj.io/u/Odmin)\
**Post date:** [October 8, 2019, 10:30am UTC](https://forum.storj.io/t/changelog-v0-22-1/2028/20 "2019-10-08T10:30:35Z")

</div>

@littleskunk  
I have something with drpc:

`docker logs storagenode 2>&1 | grep drpc`

```
2019-10-05T18:06:43.441Z INFO piecestore download failed {"Piece ID": "2BSARRXA6IKEJMBWW4UBA6LAPQVV4X2RA3532AI25JDUWO3EMDUA", "SatelliteID": "118UWpMCHzs6CvSgWd9BfFVjw5K9pZbJjkfZJexMtSkmKxvvAW", "Action": "GET", "error": "piecestore: piecestore protocol: expected order as the message", "errorVerbose": "piecestore: piecestore protocol: expected order as the message\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).doDownload.func4:587\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).doDownload:606\n\tstorj.io/storj/storagenode/piecestore.(*drpcEndpoint).Download:370\n\tstorj.io/storj/pkg/pb.DRPCPiecestoreDescription.Method.func2:838\n\tstorj.io/drpc/drpcserver.(*Server).doHandle:172\n\tstorj.io/drpc/drpcserver.(*Server).HandleRPC:150"}
2019-10-06T12:14:48.924Z INFO piecestore download failed {"Piece ID": "2BSARRXA6IKEJMBWW4UBA6LAPQVV4X2RA3532AI25JDUWO3EMDUA", "SatelliteID": "118UWpMCHzs6CvSgWd9BfFVjw5K9pZbJjkfZJexMtSkmKxvvAW", "Action": "GET", "error": "piecestore: piecestore protocol: expected order as the message", "errorVerbose": "piecestore: piecestore protocol: expected order as the message\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).doDownload.func4:587\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).doDownload:606\n\tstorj.io/storj/storagenode/piecestore.(*drpcEndpoint).Download:370\n\tstorj.io/storj/pkg/pb.DRPCPiecestoreDescription.Method.func2:838\n\tstorj.io/drpc/drpcserver.(*Server).doHandle:172\n\tstorj.io/drpc/drpcserver.(*Server).HandleRPC:150"}
2019-10-06T12:17:31.226Z INFO piecestore download failed {"Piece ID": "2BSARRXA6IKEJMBWW4UBA6LAPQVV4X2RA3532AI25JDUWO3EMDUA", "SatelliteID": "118UWpMCHzs6CvSgWd9BfFVjw5K9pZbJjkfZJexMtSkmKxvvAW", "Action": "GET", "error": "piecestore: piecestore protocol: expected order as the message", "errorVerbose": "piecestore: piecestore protocol: expected order as the message\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).doDownload.func4:587\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).doDownload:606\n\tstorj.io/storj/storagenode/piecestore.(*drpcEndpoint).Download:370\n\tstorj.io/storj/pkg/pb.DRPCPiecestoreDescription.Method.func2:838\n\tstorj.io/drpc/drpcserver.(*Server).doHandle:172\n\tstorj.io/drpc/drpcserver.(*Server).HandleRPC:150"}
2019-10-07T11:27:42.291Z INFO piecestore download failed {"Piece ID": "2BSARRXA6IKEJMBWW4UBA6LAPQVV4X2RA3532AI25JDUWO3EMDUA", "SatelliteID": "118UWpMCHzs6CvSgWd9BfFVjw5K9pZbJjkfZJexMtSkmKxvvAW", "Action": "GET", "error": "piecestore: piecestore protocol: expected order as the message", "errorVerbose": "piecestore: piecestore protocol: expected order as the message\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).doDownload.func4:587\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).doDownload:606\n\tstorj.io/storj/storagenode/piecestore.(*drpcEndpoint).Download:370\n\tstorj.io/storj/pkg/pb.DRPCPiecestoreDescription.Method.func2:838\n\tstorj.io/drpc/drpcserver.(*Server).doHandle:172\n\tstorj.io/drpc/drpcserver.(*Server).HandleRPC:150"}
```

[Next page](https://forum.storj.io/t/changelog-v0-22-1/2028.md?page=2)
