Posts

Announcing https://orderbook.xrp.ninja

Image
I just made a website https://orderbook.xrp.ninja . I have explained why I did it in the front page. I am going to record some of the problems that I had and how I solved them in this post. Prod code doesn't work The code works in development mode. But it doesn't after minified. The error message was: Uncaught Error: [$injector:modulerr] Failed to instantiate module rp due to: Error: [$injector:unpr] Unknown provider: e I found a post on stackoverflow and fixed it like this . Add domain to an existing Letsencrypt cert $ certbot certonly --cert-name rippled.xrp.ninja -d rippled.xrp.ninja,ripple.xrp.ninja,www.xrp.ninja,xrp.ninja,orderbook.xrp.ninja Redirect http traffic to https on lighttpd Add this to lighttpd.con and also enable mod_redirect . $HTTP["scheme"] == "http" { # capture vhost name with regex conditiona -> %0 in redirect pattern # must be the most inner block to the redirect rule $HTTP["host"] =~ ".*&qu

Gulp bash completion

https://www.npmjs.com/package/gulp-bash-completion I tried this. I followed the instructions on the above page, but it didn't work. Then I did the following and it worked: Locate the gulp-completion.bash file installed by the package. Change the echo_gulp_tasks variable in gulp-completion.bash file to gulp --tasks-simple Copy gulp-completion.bash to /etc/bash_completion.d and source the file in current shell. Now try type gulp [space] and hit [enter] , the completion should work. At this time, this npm package is no longer required. So you can uninstall it.

Revive ripple-client-desktop

Update: as of Jan 15, 2019, trading is working. https://github.com/r0bertz/ripple-client-desktop The first goal is to make it fully functional with RippleAPI . Current status is most read only operations are working except order book. Please follow this twitter thread for the most recent updates: This weekend I tried to revive ripple-client-desktop. l I have reached a point at which I can run gulp without any warning on the command line. However, the app stuck at loading. Then I figured out that the client uses an ancient ripple-lib API. — r0bertz (@r0bertz) December 17, 2018

Custom monitoring graphs for xrp.ninja validator

As you may know, my rippled validator runs on GCE. So I use stackdriver to monitor it. I created two custom metrics for it. One metric is uptime with rippled version as a label. Here's a live graph for this metric. From this graph, you can easily tell what the current version is and when it was upgraded to that version. You can also correlate this with other graphs to see if new version may have caused certain changes in rippled behavior. The other metric is the percentage of current uptime that rippled has been in a certain state. Normally the curve for "full" state should asymptotically approach 100. If it is not, then rippled is in trouble.

xrp.ninja is now web-monetized

I know I am have been too lazy. It's just a matter of copy and paste. So thanks to any future coil subscriber who visits this blog. Your support will be greatly appreciated. PS: here is a howto  https://xrpcommunity.blog/how-to-monetize-your-content-with-coil/

A rippled API library in Go language

https://github.com/r0bertz/ripple I have been working on this lately. It's a fork of its original one. I learned a lot since I started working on it. Specifically, I learned there are a lot of inconsistencies in the output of rippled API. See for yourself in  https://github.com/rubblelabs/ripple/issues/36#issuecomment-383355198

xrp.ninja Ripple validator returns normal since two day ago

Image
There's been some problems with the validator ever since it crashed about a week ago. It doesn't crash any more since I added much more disk space. But it easily falls behind and needs to play catch up several hours after each restart. I learned this from state_accounting field in the output of "rippled server_info". I created a metric and a chart from it. This is what the chart looks for the last week. The " Full " mode state means it is fully synced and participating in consensus process. You can see it is now asymptotically approaching 100 now. The value means the percentage of uptime the validator stays in each mode. I figured out why the disk was out of space. It was because the validator fell behind. When that happens, online delete is disabled. See this code: https://github.com/ripple/rippled/blob/fc0d64f5eec4386db7146251ab1a7fe880bec17c/src/ripple/app/misc/SHAMapStoreImp.cpp#L751 I saw some "Not deleting" messages in the l