Weekly Dev Update 01/06/2021

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/oxen_io

Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarQube - Static code analysis for 29 languages.
  • OPS - Build and Run Open Source Unikernels
  • GitHub repo oxen-storage-server

    Storage server for Oxen Service Nodes

    Replace boost beast with uWebsockets https://github.com/oxen-io/oxen-storage-server/pull/432 Remove pre-HF18 legacy code/endpoints that isn't being called anymore Remove process_lns_request endpoint (it is broken, and Session clients have already switched to using oxend_rpc with ons_resolve instead). Replace boost beast http(s) client code with cpr (https://github.com/whoshuu/cpr); this is a whole lot nicer to use for HTTP requests. Replace boost beast http server code with uWebSockets (https://github.com/uNetworking/uWebSockets). This gives a much nicer interface, and makes it easy for us to add websocket support for clients in the future. Remove boost::asio; it's not needed anymore with the removal of the above. Replace bootstrap RPC code with authenticated, encrypted OMQ RPC. Remove boost circular buffer use; a regular map with a two-line trim is simpler for the block hash cache and a limit on stored snodes doesn't seem necessary for the rate limiter. Make rate_limiter clean itself periodically rather than keeping buckets around indefinitely Make rate_limiter thread-safe so that you don't need to hold the entire service_node_ lock to use it. Remove ip_utils; we don't allow redirects and are sufficiently restrictive on the URL target that it seems unnecessary (plus not having it lets us offload DNS lookup to curl as part of the request). Replace /swarms/ping_test/v1 with /ping_test/v1; this new request now returns the remote pubkey in a header, and no longer includes an SSL cert signature (so that we can drop the SSL cert signatures after HF19). The old one will still be used until HF19. Add OMQ endpoint for storage tests; starting at HF19 it will get used rather than the HTTPS one. Refactor storage test retries into request_handler (rather than being in the HTTPS specific code) Move HTTPS server-specific code for validating snode signatures from headers out of generic request_handler code and into HTTPS-specific code. Make onion proxy-to-url timeout a bit less than the onion request timeout so that the client has a better chance of getting a relayed timeout error (rather than getting a timeout from the edge node). Miscellaneous cleanups. Logger: use file and line number instead of func because the latter is nearly useless when called from a lambda. Shorten timeout values for ping tests, storage tests, and bootstrap connections to 5s, 15s, and 10s, respectively, from. Refactor recent stats reporting to use rolling averages that always have 60-70min of stats and drop off 10min at a time, rather than the 1-period hard reset. Also fixes various stats that weren't calculated/reported properly. Add onion and proxy requests to systemd status line as well as used database size. Enable WAL for sqlite3 database Removed buffered message relaying for swarm propagation; it's counterproductive with omq's persistent connections. Enable jemalloc by default.

  • GitHub repo cpr

    C++ Requests: Curl for People, a spiritual port of Python Requests.

    Replace boost beast http(s) client code with cpr (https://github.com/whoshuu/cpr); this is a whole lot nicer to use for HTTP requests.

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • GitHub repo µWebSockets

    Simple, secure & standards compliant web server for the most demanding of applications

    Replace boost beast http server code with uWebSockets (https://github.com/uNetworking/uWebSockets). This gives a much nicer interface, and makes it easy for us to add websocket support for clients in the future.

  • GitHub repo loki-network

    Lokinet is an anonymous, decentralized and IP based overlay network for the internet.

    Ongoing path handover new diagnostic tools, potential fixes, and various related improvements (draft PR) https://github.com/oxen-io/loki-network/pull/1653

  • GitHub repo session-android

    A private messenger for Android.

    Fix message deletion bug https://github.com/oxen-io/session-android/pull/593 , https://github.com/oxen-io/session-android/pull/573

  • GitHub repo session-ios

    A private messenger for iOS.

    iOS deep link for Session IDs / Usernames (thanks to community contributor iArchitSharma) https://github.com/oxen-io/session-ios/pull/421

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts