CFDs on Bitcoin.

Overview

Project Hermes

CFD trading on Bitcoin.

Details coming soon.

Starting the maker and taker daemon

The maker and taker frontend depend on the respective daemon running.

At the moment the maker daemon has to be started first:

cargo run --bin maker

Once the maker is started you can start the taker:

cargo run --bin taker

Upon startup the taker daemon will connect to the (hardcoded) maker and retrieve the current order.

Note: The sqlite databases for maker and taker are currently created in the project root.

Starting the maker and taker frontend

We use a single react project for hosting both the taker and the maker frontends. However, the development environment still needs to be start twice! Which frontend to start is configured via the APP environment variable.

cd frontend;
APP=taker yarn dev
APP=maker yarn dev

Bundling the web frontend and serving it from the respective daemon is yet to be configured. At the moment you will need a browser extension to allow CORS headers like CORS Everywhere (Firefox Extension) to use the frontends.

Linting

To run eslint, use:

cd frontend && yarn run eslint
Comments
  • Establishing connection to maker hangs

    Establishing connection to maker hangs

    The maker seems to be running normally.

    Starting the taker, the UI is up but it does not connect to the maker. No logs on either side show that the taker tried to connect

    2021-11-30 01:40:46  INFO Lock transaction published with txid c96d8ac6ebed953d885c416b0f7295d27c115f21b340d94a8999ef27e21b1515
    2021-11-30 01:40:47 DEBUG Taker actor system ready
    2021-11-30 01:40:48  INFO Connected to BitMex realtime API
    2021-11-30 01:40:48 DEBUG Resolved umbrel.local:9999 to [192.168.1.76:9999,[fe80::829c:39f3:c31e:35c2]:9999]
    2021-11-30 01:40:48  INFO No connection to the maker, attempting to connect:
    2021-11-30 01:40:48  WARN πŸ”§ Configured for release.    
    2021-11-30 01:40:48  WARN address: 0.0.0.0    
    2021-11-30 01:40:48  WARN port: 8000    
    2021-11-30 01:40:48  WARN workers: 4    
    2021-11-30 01:40:48  WARN ident: Rocket    
    2021-11-30 01:40:48  WARN limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB    
    2021-11-30 01:40:48  WARN temp dir: /tmp    
    2021-11-30 01:40:48  WARN keep-alive: 5s    
    2021-11-30 01:40:48  WARN tls: disabled    
    2021-11-30 01:40:48  WARN shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s    
    2021-11-30 01:40:48  WARN log level: critical    
    2021-11-30 01:40:48  WARN cli colors: true    
    2021-11-30 01:40:48  WARN πŸ“¬ Routes:    
    2021-11-30 01:40:48  WARN (index) GET /<_paths..> text/html    
    2021-11-30 01:40:48  WARN (dist) GET /assets/<file..>    
    2021-11-30 01:40:48  WARN (feed) GET /api/feed    
    2021-11-30 01:40:48  WARN (get_health_check) GET /api/alive    
    2021-11-30 01:40:48  WARN (post_withdraw_request) POST /api/withdraw    
    2021-11-30 01:40:48  WARN (post_order_request) POST /api/cfd/order    
    2021-11-30 01:40:48  WARN (margin_calc) POST /api/calculate/margin    
    2021-11-30 01:40:48  WARN (post_cfd_action) POST /api/cfd/<id>/<action>    
    2021-11-30 01:40:48  WARN πŸ“‘ Fairings:    
    2021-11-30 01:40:48  WARN Shield (liftoff, response, singleton)    
    2021-11-30 01:40:48  INFO πŸ›‘οΈ Shield:    
    2021-11-30 01:40:48  WARN πŸš€ Rocket has launched from http://0.0.0.0:8000    
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T03:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-12-01T02:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T20:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T08:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T14:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T15:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T21:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T09:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T10:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T04:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T22:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T16:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T11:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T23:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T05:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-12-01T00:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-12-01T01:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T12:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T13:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T17:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T06:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T07:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T18:00:00.price?n=20
    2021-11-30 01:40:52 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T19:00:00.price?n=20
    2021-11-30 01:41:06 DEBUG Found relevant Bitcoin transaction txid=c96d8ac6ebed953d885c416b0f7295d27c115f21b340d94a8999ef27e21b1515 status=in mempool
    2021-11-30 01:41:45  INFO GET /alive:    
    2021-11-30 01:42:15  WARN Error on websocket stream: WebSocket protocol error: Connection reset without closing handshake
    2021-11-30 01:42:15  WARN Failed to read quote from websocket
    2021-11-30 01:43:20  INFO GET /alive:    
    2021-11-30 01:43:45  INFO GET /alive:    
    ^C2021-11-30 01:44:02  WARN Received SIGINT. Requesting shutdown.    
    2021-11-30 01:44:02  INFO Received shutdown request. Waiting for pending I/O...   
    
    

    maker log

    2021-11-30 12:26:36  INFO Initialized logger
    2021-11-30 12:26:36  INFO Running version: 0.1.2
    2021-11-30 12:26:39  INFO Authentication details: username='maker' password='61e098d3791aaa2c64b90cc67dfceadcaa7100e39a57426a2aa5b23034fb5906', noise_public_key='69a42aa90da8b065b9532b62bff940a3ba07dbbb11d4482c7db83a7e049a9f1e'
    2021-11-30 12:26:39  INFO Listening on 0.0.0.0:9999
    2021-11-30 12:26:40 ERROR Broadcasting transaction failed. Txid: 83fed9c0677fb30324494598bd5bf6e337f6a737d217893984bb6a4a5ff1ffd3. Raw transaction: 020000000001028d96dd5c90f512f36dc0e00da71b0f31a4ffbffd627b2ed5a17c34d75ef561d90000000000ffffffff92191b86ad41d9c25dafa276331debcd9bf3782f6b2cc6ac9a009c27669fe33f0100000000ffffffff03df65000000000000220020e00980a75447cfeb32059a78c7e5457fae209a2b88bc1055f5dae52c2d6c3491d151020000000000160014f32ec9844f11a0c09e491d8073a35f462234f8e955270100000000001600147ff6eac06f3db0e0db09d6458f88fba22dc6cd9a0247304402200610bc3a508f0e79b69725ce33c8508d750ad7b7a13ed4c1fcf2add622efe5d2022054c974f56d77beae0258305938809a90dbf3fcd97152348df99217e6dfe886820121027a317b986bceb60b5a65a71e11294ab96cdf10f0ae73998d7962b2370838be820247304402205fadab625736750a0da5174efe61866e3886b8c5ae6bbdb119810c55a2035c6b02201cee69e7c9470845c3c3da8c23471174cd1f69035a77b8d3ea9e483d653d4758012102be4bfaa2abac6a187c6d5432da5720a447b315928d3b56c8a9c335db9b9f7ee400000000: Electrum(Protocol(String("sendrawtransaction RPC error: {\"code\":-25,\"message\":\"bad-txns-inputs-missingorspent\"}")))
    2021-11-30 12:26:41 DEBUG Fetching attestation for /x/BitMEX/BXBT/2021-11-30T01:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T03:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T04:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T05:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T06:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T16:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T11:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T07:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T08:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T09:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T21:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T17:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T12:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T10:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T18:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T19:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T20:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T22:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T14:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Maker actor system ready
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T23:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T15:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-12-01T01:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-11-30T13:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-12-01T00:00:00.price?n=20
    2021-11-30 12:26:41 DEBUG Fetching announcement for /x/BitMEX/BXBT/2021-12-01T02:00:00.price?n=20
    2021-11-30 12:26:42  INFO Fetched new attestation for /x/BitMEX/BXBT/2021-11-30T01:00:00.price?n=20
    2021-11-30 12:26:42 DEBUG Learnt latest oracle attestation for event: /x/BitMEX/BXBT/2021-11-30T01:00:00.price?n=20
    2021-11-30 12:26:43  INFO Connected to BitMex realtime API
    2021-11-30 12:26:43  WARN πŸ”§ Configured for release.
    2021-11-30 12:26:43  WARN address: 0.0.0.0
    2021-11-30 12:26:43  WARN port: 8000
    2021-11-30 12:26:43  WARN workers: 4
    2021-11-30 12:26:43  WARN ident: Rocket
    2021-11-30 12:26:43  WARN limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB
    2021-11-30 12:26:43  WARN temp dir: /tmp
    2021-11-30 12:26:43  WARN keep-alive: 5s
    2021-11-30 12:26:43  WARN tls: disabled
    2021-11-30 12:26:43  WARN shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s
    2021-11-30 12:26:43  WARN log level: critical
    2021-11-30 12:26:43  WARN cli colors: true
    2021-11-30 12:26:43  WARN πŸ“¬ Routes:
    2021-11-30 12:26:43  WARN (index) GET /<_paths..> text/html
    2021-11-30 12:26:43  WARN (dist) GET /assets/<file..>
    2021-11-30 12:26:43  WARN (maker_feed) GET /api/feed
    2021-11-30 12:26:43  WARN (get_health_check) GET /api/alive
    2021-11-30 12:26:43  WARN (post_withdraw_request) POST /api/withdraw
    2021-11-30 12:26:43  WARN (post_sell_order) POST /api/order/sell
    2021-11-30 12:26:43  WARN (post_cfd_action) POST /api/cfd/<id>/<action>
    2021-11-30 12:26:43  WARN πŸ₯… Catchers:
    2021-11-30 12:26:43  WARN (unauthorized) 401
    2021-11-30 12:26:43  WARN (unauthorized) /api 401
    2021-11-30 12:26:43  WARN πŸ“‘ Fairings:
    2021-11-30 12:26:43  WARN Shield (liftoff, response, singleton)
    2021-11-30 12:26:43  INFO πŸ›‘οΈ Shield:
    2021-11-30 12:26:43  WARN πŸš€ Rocket has launched from http://0.0.0.0:8000
    2021-11-30 12:26:43 ERROR Error when trying to publish CET: Cannot publish CET in state Pending Open
    2021-11-30 12:26:43 ERROR Cannot transition to OpenCommitted because of unexpected state Open Committed
    2021-11-30 12:26:43  INFO GET /api/feed text/event-stream:
    2021-11-30 12:26:44  INFO POST /api/order/sell application/json:
    2021-11-30 12:26:46 DEBUG Noise protocol responder handshake is complete
    2021-11-30 12:26:46  INFO New taker connected taker_id=7b451067e235fdf35b758fad8842281c039e7914c5e880e8d608f2f1e09fbb45 address=192.168.1.63:54851
    2021-11-30 12:26:52 DEBUG Noise protocol responder handshake is complete
    2021-11-30 12:26:52  INFO New taker connected taker_id=2d9ef5b81d303c9bba1715815a7cc5fa5c91af0542b691d02ab31a46bfa40d7a address=116.240.228.91:54971
    2021-11-30 12:27:01 DEBUG Found relevant Bitcoin transaction txid=d43db0eb8badcb72b1a3c9e354bb9242e167b03672dd74265ab6f615fa2bf769 status=confirmed with 2 blocks
    2021-11-30 12:27:15  INFO POST /api/order/sell application/json:
    2021-11-30 12:27:36 ERROR Closing connection to taker 7b451067e235fdf35b758fad8842281c039e7914c5e880e8d608f2f1e09fbb45
    2021-11-30 12:27:46 DEBUG Noise protocol responder handshake is complete
    2021-11-30 12:27:46  INFO New taker connected taker_id=7b451067e235fdf35b758fad8842281c039e7914c5e880e8d608f2f1e09fbb45 address=192.168.1.63:54858
    2021-11-30 12:28:03 DEBUG Noise protocol responder handshake is complete
    2021-11-30 12:28:03  INFO New taker connected taker_id=4d6457ba4f39267b08b02d5f03f17dcaed7ddefedd8a39c3636b1e46e1018e06 address=141.168.172.35:61215
    2021-11-30 12:28:15  INFO POST /api/order/sell application/json:
    2021-11-30 12:28:25 ERROR Closing connection to taker 7b451067e235fdf35b758fad8842281c039e7914c5e880e8d608f2f1e09fbb45
    2021-11-30 12:29:01 DEBUG Got notification for new block block_height=2105766
    2021-11-30 12:29:01 DEBUG Bitcoin transaction status changed txid=d43db0eb8badcb72b1a3c9e354bb9242e167b03672dd74265ab6f615fa2bf769 new_status=confirmed with 3 blocks old_status=confirmed with 2 blocks
    2021-11-30 12:29:07 DEBUG Noise protocol responder handshake is complete
    2021-11-30 12:29:07  INFO New taker connected taker_id=ba4a7001bb1debc4e355f971e7e87409281865691ae64cbd9c8cfac1a07da442 address=111.220.66.103:42612
    2021-11-30 12:29:15  INFO POST /api/order/sell application/json:
    2021-11-30 12:29:15  INFO Failed to send CurrentOrder to taker, removing connection taker_id=7b451067e235fdf35b758fad8842281c039e7914c5e880e8d608f2f1e09fbb45
    2021-11-30 12:30:15  WARN Error on websocket stream: WebSocket protocol error: Connection reset without closing handshake
    2021-11-30 12:30:15  WARN Failed to read quote from websocket
    2021-11-30 12:33:42  INFO GET / text/html:
    2021-11-30 12:33:42  INFO GET /assets/index.08fbfe68.css text/css:
    2021-11-30 12:33:42  INFO GET /assets/index.478e7f1a.js:
    2021-11-30 12:33:42  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:33:42  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:33:42  INFO GET /api/feed text/event-stream:
    2021-11-30 12:33:42  INFO GET /favicon.svg image/avif:
    2021-11-30 12:33:42 ERROR No matching routes for GET /favicon.svg image/avif.
    2021-11-30 12:35:03 ERROR Failed to write message Heartbeat to socket: Broken pipe (os error 32)
    
    2021-11-30 12:36:39  INFO GET / text/html:
    2021-11-30 12:36:39  INFO GET /assets/index.478e7f1a.js:
    2021-11-30 12:36:39  INFO GET /assets/index.08fbfe68.css text/css:
    2021-11-30 12:36:39  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:36:39  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:36:39  INFO GET /api/feed text/event-stream:
    2021-11-30 12:36:39  INFO GET /favicon.svg image/avif:
    2021-11-30 12:36:39 ERROR No matching routes for GET /favicon.svg image/avif.
    2021-11-30 12:38:03  INFO POST /api/order/sell application/json:
    2021-11-30 12:38:06  INFO GET / text/html:
    2021-11-30 12:38:06  INFO GET /assets/index.478e7f1a.js:
    2021-11-30 12:38:06  INFO GET /assets/index.08fbfe68.css text/css:
    2021-11-30 12:38:06  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:38:07  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:38:07  INFO GET /api/feed text/event-stream:
    2021-11-30 12:38:08  INFO GET /favicon.svg image/avif:
    2021-11-30 12:38:08 ERROR No matching routes for GET /favicon.svg image/avif.
    2021-11-30 12:38:10  INFO POST /api/order/sell application/json:
    2021-11-30 12:40:22  INFO GET / text/html:
    2021-11-30 12:40:22  INFO GET /assets/index.478e7f1a.js:
    2021-11-30 12:40:22  INFO GET /assets/index.08fbfe68.css text/css:
    2021-11-30 12:40:22  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:40:22  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:40:22  INFO GET /api/feed text/event-stream:
    2021-11-30 12:40:23  INFO GET /favicon.svg image/avif:
    2021-11-30 12:40:23 ERROR No matching routes for GET /favicon.svg image/avif.
    2021-11-30 12:40:26  INFO POST /api/order/sell application/json:
    2021-11-30 12:40:32  INFO GET / text/html:
    2021-11-30 12:40:32  INFO GET /assets/index.478e7f1a.js:
    2021-11-30 12:40:32  INFO GET /assets/index.08fbfe68.css text/css:
    2021-11-30 12:40:32  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:40:33  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:40:33  INFO GET /api/feed text/event-stream:
    2021-11-30 12:40:33  INFO GET /favicon.svg image/avif:
    2021-11-30 12:40:33 ERROR No matching routes for GET /favicon.svg image/avif.
    2021-11-30 12:43:35  INFO GET / text/html:
    2021-11-30 12:43:35  INFO GET /assets/index.478e7f1a.js:
    2021-11-30 12:43:35  INFO GET /assets/index.08fbfe68.css text/css:
    2021-11-30 12:43:35  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:43:36  INFO GET /assets/vendor.68f88f6e.js:
    2021-11-30 12:43:36  INFO GET /api/feed text/event-stream:
    2021-11-30 12:43:36  INFO GET /favicon.svg image/avif:
    2021-11-30 12:43:36 ERROR No matching routes for GET /favicon.svg image/avif.
    
    bug 
    opened by bonomat 33
  • Collab close and rollover problems on testnet

    Collab close and rollover problems on testnet

    We ran into problem with CFD aabb011f-9a22-40bb-b6cc-45c2c2a81fd7.

    taker_master logs

    2022-06-08 12:20:50	
    {"timestamp":"2022-06-08T02:20:50.01898658Z","level":"DEBUG","fields":{"message":"Applying new events to CFD","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7","aggregate":"model::cfd::Cfd","cfd_version":"7","num_events":"0"},"target":"sqlite_db"}
    	
    2022-06-08 12:20:50	
    {"timestamp":"2022-06-08T02:20:50.026144209Z","level":"INFO","fields":{"message":"Appended event to database","event":"CollaborativeSettlementStarted","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"sqlite_db"}
    	
    2022-06-08 12:20:50	
    {"timestamp":"2022-06-08T02:20:50.026448835Z","level":"DEBUG","fields":{"message":"Handled request","method":"POST","path":"/api/cfd/aabb011f-9a22-40bb-b6cc-45c2c2a81fd7/settle","status":"200 OK"},"target":"http"}
    	
    2022-06-08 12:20:50	
    {"timestamp":"2022-06-08T02:20:50.027357261Z","level":"DEBUG","fields":{"message":"Applying new events to CFD","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7","aggregate":"daemon::projection::Cfd","cfd_version":"7","num_events":"1"},"target":"sqlite_db"}
    	
    2022-06-08 12:20:50	
    {"timestamp":"2022-06-08T02:20:50.035812097Z","level":"DEBUG","fields":{"message":"Applying new events to CFD","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7","aggregate":"daemon::position_metrics::Cfd","cfd_version":"7","num_events":"1"},"target":"sqlite_db"}
    	
    2022-06-08 12:20:53	
    {"timestamp":"2022-06-08T02:20:53.140958891Z","level":"ERROR","fields":{"message":"Rollover failed: End of stream while receiving Decision","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"daemon::collab_settlement::protocol"}
    	
    2022-06-08 12:20:53	
    {"timestamp":"2022-06-08T02:20:53.142207492Z","level":"DEBUG","fields":{"message":"Applying new events to CFD","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7","aggregate":"model::cfd::Cfd","cfd_version":"7","num_events":"1"},"target":"sqlite_db"}
    	
    2022-06-08 12:20:53	
    {"timestamp":"2022-06-08T02:20:53.142764198Z","level":"WARN","fields":{"message":"Collaborative settlement failed: End of stream while receiving Decision","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"model::cfd"}
    	
    2022-06-08 12:20:53	
    {"timestamp":"2022-06-08T02:20:53.151720153Z","level":"INFO","fields":{"message":"Appended event to database","event":"CollaborativeSettlementFailed","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"sqlite_db"}
    

    And later rollover ran into trouble with this CFD:

    2022-06-08 13:02:05	
    {"timestamp":"2022-06-08T03:02:05.174389754Z","level":"ERROR","fields":{"message":"Rollover failed: End of stream while receiving rollover decision from maker","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"daemon::rollover::protocol"}
    	
    2022-06-08 13:02:05	
    {"timestamp":"2022-06-08T03:02:05.175288564Z","level":"DEBUG","fields":{"message":"Applying new events to CFD","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7","aggregate":"model::cfd::Cfd","cfd_version":"9","num_events":"1"},"target":"sqlite_db"}
    	
    2022-06-08 13:02:05	
    {"timestamp":"2022-06-08T03:02:05.175717612Z","level":"WARN","fields":{"message":"Rollover failed: End of stream while receiving rollover decision from maker","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"model::cfd"}Show context
    	
    2022-06-08 13:02:05	
    {"timestamp":"2022-06-08T03:02:05.179112123Z","level":"INFO","fields":{"message":"Appended event to database","event":"RolloverFailed","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"sqlite_db"}
    

    and then:

    2022-06-08 13:07:05	
    {"timestamp":"2022-06-08T03:07:05.527961805Z","level":"INFO","fields":{"message":"Rollover proposal got accepted","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"daemon::rollover::taker"}Show context
    	
    2022-06-08 13:07:05	
    {"timestamp":"2022-06-08T03:07:05.546760813Z","level":"DEBUG","fields":{"message":"Applying new events to CFD","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7","aggregate":"daemon::position_metrics::Cfd","cfd_version":"12","num_events":"1"},"target":"sqlite_db"}
    	
    2022-06-08 13:07:14	
    {"timestamp":"2022-06-08T03:07:14.883172161Z","level":"ERROR","fields":{"message":"Rollover failed: Counterparty sent invalid revocation sk","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"daemon::rollover::protocol"}
    	
    2022-06-08 13:07:14	
    {"timestamp":"2022-06-08T03:07:14.884128743Z","level":"DEBUG","fields":{"message":"Applying new events to CFD","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7","aggregate":"model::cfd::Cfd","cfd_version":"12","num_events":"1"},"target":"sqlite_db"}
    	
    2022-06-08 13:07:14	
    {"timestamp":"2022-06-08T03:07:14.885425984Z","level":"WARN","fields":{"message":"Rollover failed: Counterparty sent invalid revocation sk","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"model::cfd"}
    

    It kept failing with this problem on both sides and will be force closed.

    maker logs

    Collab settlement failed to start error:

    2022-06-08 12:20:50	
    {"timestamp":"2022-06-08T02:20:50.130892495Z","level":"ERROR","fields":{"message":"Rollover failed: Failed to start collab settlement protocol: Failed to execute command on CFD: Proposed collab settlement does not equal locally created one. Local: Transaction { version: 2, lock_time: 0, input: [TxIn { previous_output: OutPoint { txid: f0ebf41aff66609349e80593fe514908477283e1f413904f0e5732c4c93b3feb, vout: 0 }, script_sig: Script(), sequence: 4294967295, witness: [] }], output: [TxOut { value: 328457, script_pubkey: Script(OP_0 OP_PUSHBYTES_20 ba6b63c217bf0ec2938b54ba04739a56d9bfeea0) }, TxOut { value: 158637, script_pubkey: Script(OP_0 OP_PUSHBYTES_20 416777184a21af22328634360c2a2dcfa8f6c3aa) }] }, proposed: Transaction { version: 2, lock_time: 0, input: [TxIn { previous_output: OutPoint { txid: f0ebf41aff66609349e80593fe514908477283e1f413904f0e5732c4c93b3feb, vout: 0 }, script_sig: Script(), sequence: 4294967295, witness: [] }], output: [TxOut { value: 328455, script_pubkey: Script(OP_0 OP_PUSHBYTES_20 ba6b63c217bf0ec2938b54ba04739a56d9bfeea0) }, TxOut { value: 158639, script_pubkey: Script(OP_0 OP_PUSHBYTES_20 416777184a21af22328634360c2a2dcfa8f6c3aa) }] }","order_id":"aabb011f-9a22-40bb-b6cc-45c2c2a81fd7"},"target":"daemon::collab_settlement::protocol"}
    
    opened by da-kami 23
  • Instrument tests with custom macro & export over OTLP

    Instrument tests with custom macro & export over OTLP

    This PR uses a custom #[otel_test] macro to instrument daemon-tests and export the spans over OTLP to Jaeger, when the ITCHYSATS_TEST_INSTRUMENTATION environment variable is set to 1.

    This currently uses the simple exporter. I tried the batch exporter, but this strangely caused some tests to hang.

    TODOs

    • [x] Disable instrumentation option for CI
    • [x] Get gRPC to build on ARM CI, or swap it for tonic (which doesn't currently work)
    • [x] How can we configure the service name and log levels for crates other than daemon-tests?
    opened by Restioson 21
  • Opentelemetry goes berserker mode

    Opentelemetry goes berserker mode

    I had the taker and maker running locally locally over night. Now I get spammed with these errors.

    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    OpenTelemetry trace error occurred. cannot send span to the batch span processor because the channel is full
    
    

    2 questions

    • What does this mean?
    • Can we use our tracing library to log those errors? Since they are not json we won't be able to parse our logs to json anymore.
    opened by bonomat 17
  • Bump webbrowser from 0.7.0 to 0.7.1

    Bump webbrowser from 0.7.0 to 0.7.1

    Bumps webbrowser from 0.7.0 to 0.7.1.

    Release notes

    Sourced from webbrowser's releases.

    v0.7.1

    Releasing v0.7.1 with the following changes:

    Added

    • Introduce Browser::is_available() and Browser::exists(&self) to check availability of browsers without opening a URL. See #47

    Changed

    • Modify BrowserOptions to be constructable only via the builder pattern, to prevent future API compatibility issues
    Changelog

    Sourced from webbrowser's changelog.

    [0.7.1] - 2022-04-27

    Added

    • Introduce Browser::is_available() and Browser::exists(&self) to check availability of browsers without opening a URL

    Changed

    • Modify BrowserOptions to be constructable only via the builder pattern, to prevent future API compatibility issues
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 17
  • Add on-boarding tour to taker-ui

    Add on-boarding tour to taker-ui

    On-boarding tour:

    An onboarding tour is a guided walkthrough through our application. It guides users step-by-step through what they can do and have to do to for the important actions:

    • deposit funds
    • open a position
    • close a position
    • ...

    There are a few libraries which we could make use of:

    • intro-js: looks like the best rated one. Has a free mode for non-commercial and paid for commercial applications. Not so sure about react support: https://github.com/usablica/intro.js/
      • demo: https://introjs.com/
    • intro-js is a wrapper around intro-js: https://github.com/HiDeoo/intro.js-react
      • demo: https://codesandbox.io/embed/o2A4gwXE3?hidenavigation=1
    • react-joyride: looks well rated according to github stars. https://github.com/gilbarbara/react-joyride
      • demo: https://react-joyride.com/
    • react-sheperd: looks a bit stale: https://github.com/shipshapecode/react-shepherd
      • demo: https://shipshapecode.github.io/react-shepherd/

    Originally posted by @bonomat in https://github.com/itchysats/itchysats/discussions/1841#discussioncomment-2598628

    opened by bonomat 17
  • Bump mockall from 0.11.0 to 0.11.1

    Bump mockall from 0.11.0 to 0.11.1

    Bumps mockall from 0.11.0 to 0.11.1.

    Changelog

    Sourced from mockall's changelog.

    [ 0.11.1 ] - 2022-05-15

    Fixed

    • Fixed mocking methods that use Self in their arguments, but not as the receiver. For example, PartialEq::eq has a signature like fn eq(&self, other: &Self) -> bool (#373)
    • Fixed mocking methods that return a reference to a dyn T trait object, when that trait is not already implemented for Box<dyn T>. (#380)
    Commits
    • 0f151fa (cargo-release) version 0.11.1
    • ccf491d (cargo-release) version 0.11.1
    • 468738e (cargo-release) version 0.3.0
    • 92a07b7 [skip ci] Update mockall_double's README with current version numbers
    • 84db549 Merge pull request #380 from onalante-msft/box-dyn-fix
    • eb956e0 [mockall-derive] Fix #363 (#380)
    • 1dc7781 Merge pull request #374 from asomers/double_type
    • 9096113 Merge pull request #373 from asomers/deselfify_args
    • dc4af4a Add the ability to double type aliases to mockall_double
    • 1db92b6 Fix mocking methods that use Self in their arguments.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 16
  • Tile layout make-over

    Tile layout make-over

    Next funding rate information

    • Timestamp when it will occur
    • Costs

    Historical:

    • When was the CFD opened?
    • When was the last funding round and at what cost?

    As part of this we want a makeover of the tile. Please ping once picking up this ticket.

    opened by da-kami 16
  • Replace basic-auth with the much better cookie-auth.

    Replace basic-auth with the much better cookie-auth.

    Replace basic-auth with the much better cookie-auth.

    The default password for the pre-existing user is weareallsatoshi. You can overwrite it using the --password argument. If you start with the default password you are asked to change it at first login.

    Have a look, give it a try and let me know what you think.

    https://user-images.githubusercontent.com/224613/188820762-e5cd96dc-019a-4d10-a54e-6caf03875a3b.mov

    Signed-off-by: Philipp Hoenisch [email protected]

    opened by bonomat 15
  • Taker cannot rollover one position but can rollover another one

    Taker cannot rollover one position but can rollover another one

    taker version 0.5.0 network: mainnet peerid: 12D3KooWQKVeZWeD5WBKEjN4pDVjmd4VwyNrdm2Ey6bJWGW7FEw7 takerid: 921d68aa0b584901d038b6460d3155464febe2dbad74c77a9eae91be60a4c771 orderid: 2c6b3182-f648-4f96-87c2-60a698501e33

    I noticed that I cannot collaborative settle a position. In the UI I only get

    image

    In the console I see:

    2022-08-04 22:20:58 DEBUG http: Handled request method=POST path=/api/cfd/2c6b3182-f648-4f96-87c2-60a698501e33/settle status=500 Internal Server Error
    2022-08-04 22:23:52 DEBUG POST /cfd/<id>/<action>{id=2c6b3182-f648-4f96-87c2-60a698501e33 action="settle"}:propose_settlement{order_id=OrderId(2c6b3182-f648-4f96-87c2-60a698501e33)}:xtra_actor_request{actor_type=daemon::taker_cfd::Actor<daemon::oracle::Actor, daemon::wallet::Actor<bdk::blockchain::electrum::ElectrumBlockchain, sled::tree::Tree>> message_type=daemon::taker_cfd::ProposeSettlement}:xtra_message_handler:Handle ProposeSettlement: daemon::taker_cfd: Proposing settlement of contract order_id=2c6b3182-f648-4f96-87c2-60a698501e33 proposal_closing_price=22560.5 bid=22560 ask=22560.5 quote_timestamp=2022-08-04T22:23:00Z
    2022-08-04 22:23:52 ERROR POST /cfd/<id>/<action>{id=2c6b3182-f648-4f96-87c2-60a698501e33 action="settle"}:propose_settlement{order_id=OrderId(2c6b3182-f648-4f96-87c2-60a698501e33)}: daemon: error=could not start closing position
    2022-08-04 22:23:52 ERROR POST /cfd/<id>/<action>{id=2c6b3182-f648-4f96-87c2-60a698501e33 action="settle"}: taker::routes: error=500 Internal Server Error - settle failed - could not start closing position: Failed to execute command on CFD: Collaborative close without DLC
    2022-08-04 22:23:52 DEBUG http: Handled request method=POST path=/api/cfd/2c6b3182-f648-4f96-87c2-60a698501e33/settle status=500 Internal Server Error
    

    I checked the maker logs and it looks like this position was not rolled over in 12h.

    Last error from the maker with this peerid was an error:

    {"timestamp":"2022-08-03T11:24:01.217609062Z","level":"DEBUG","fields":{"message":"Failed to send offers: Timeout in protocol negotiation","peer":"12D3KooWQKVeZWeD5WBKEjN4pDVjmd4VwyNrdm2Ey6bJWGW7FEw7"},"target":"xtra_libp2p_offer::maker","span":{"err":"Timeout in protocol negotiation","name":"fallible task handle_error"}}
    

    Last error on the taker side:

    2022-08-04 22:16:43 DEBUG fallible task handle_error{err=The stream has terminated.}: xtra_libp2p_offer::taker: Failed to process maker offers: The stream has terminated. peer=12D3KooWP3BN6bq9jPy8cP7Grj1QyUBfr7U6BeQFgMwfTTu12wuY
    

    Interestingly, my other position c41068f5-d058-48bf-9f56-34dba41e43bd is being rolled over fine.

    bug critical 
    opened by bonomat 15
  • Use hourly liquidation events when constructing DLCs

    Use hourly liquidation events when constructing DLCs

    Fix #2299.

    The diff is misleadingly massive because when introducing the new feature in https://github.com/itchysats/itchysats/pull/2378/commits/35c4e4e658f8d72f23522a48fa6587cf12222ac5 I chose to simply duplicate the rollover actor. The old version is used to stay compatible with old takers. In my opinion, the correct approach would be to release different versions of xtra_libp2p_rollover as we introduce breaking changes. But this is blocked by being able to release some of the crates in our workspace (and maia): #2393.

    opened by luckysori 15
  • chore(deps): Bump tokio from 1.21.2 to 1.23.1

    chore(deps): Bump tokio from 1.21.2 to 1.23.1

    Bumps tokio from 1.21.2 to 1.23.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.23.1

    This release forward ports changes from 1.18.4.

    Fixed

    • net: fix Windows named pipe server builder to maintain option when toggling pipe mode (#5336).

    #5336: tokio-rs/tokio#5336

    Tokio v1.23.0

    Fixed

    • net: fix Windows named pipe connect (#5208)
    • io: support vectored writes for ChildStdin (#5216)
    • io: fix async fn ready() false positive for OS-specific events (#5231)

    Changed

    • runtime: yield_now defers task until after driver poll (#5223)
    • runtime: reduce amount of codegen needed per spawned task (#5213)
    • windows: replace winapi dependency with windows-sys (#5204)

    #5208: tokio-rs/tokio#5208 #5216: tokio-rs/tokio#5216 #5213: tokio-rs/tokio#5213 #5204: tokio-rs/tokio#5204 #5223: tokio-rs/tokio#5223 #5231: tokio-rs/tokio#5231

    Tokio v1.22.0

    Added

    • runtime: add Handle::runtime_flavor (#5138)
    • sync: add Mutex::blocking_lock_owned (#5130)
    • sync: add Semaphore::MAX_PERMITS (#5144)
    • sync: add merge() to semaphore permits (#4948)
    • sync: add mpsc::WeakUnboundedSender (#5189)

    Added (unstable)

    • process: add Command::process_group (#5114)
    • runtime: export metrics about the blocking thread pool (#5161)
    • task: add task::id() and task::try_id() (#5171)

    Fixed

    • macros: don't take ownership of futures in macros (#5087)
    • runtime: fix Stacked Borrows violation in LocalOwnedTasks (#5099)
    • runtime: mitigate ABA with 32-bit queue indices when possible (#5042)
    • task: wake local tasks to the local queue when woken by the same thread (#5095)
    • time: panic in release mode when mark_pending called illegally (#5093)
    • runtime: fix typo in expect message (#5169)

    ... (truncated)

    Commits
    • 1a997ff chore: prepare Tokio v1.23.1 release
    • a8fe333 Merge branch 'tokio-1.20.x' into tokio-1.23.x
    • ba81945 chore: prepare Tokio 1.20.3 release
    • 763bdc9 ci: run WASI tasks using latest Rust
    • 9f98535 Merge remote-tracking branch 'origin/tokio-1.18.x' into fix-named-pipes-1.20
    • 9241c3e chore: prepare Tokio v1.18.4 release
    • 699573d net: fix named pipes server configuration builder
    • 3ce5a26 chore: prepare Tokio v1.23 release (#5270)
    • 644cb82 rt: fix *_closed false positives (#5231)
    • a1316cd io: impl std::io::BufRead on SyncIoBridge\<T> (#5265)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies rust 
    opened by dependabot[bot] 0
  • chore(deps): Bump tokio from 1.21.0 to 1.24.1 in /crates/rocket-cookie-auth

    chore(deps): Bump tokio from 1.21.0 to 1.24.1 in /crates/rocket-cookie-auth

    Bumps tokio from 1.21.0 to 1.24.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.24.1

    This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#5356)

    #5356: tokio-rs/tokio#5356

    Tokio v1.24.0

    The highlight of this release is the reduction of lock contention for all I/O operations (#5300). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications.

    Fixed

    • rt: improve native AtomicU64 support detection (#5284)

    Added

    • rt: add configuration option for max number of I/O events polled from the OS per tick (#5186)
    • rt: add an environment variable for configuring the default number of worker threads per runtime instance (#4250)

    Changed

    • sync: reduce MPSC channel stack usage (#5294)
    • io: reduce lock contention in I/O operations (#5300)
    • fs: speed up read_dir() by chunking operations (#5309)
    • rt: use internal ThreadId implementation (#5329)
    • test: don't auto-advance time when a spawn_blocking task is running (#5115)

    #5186: tokio-rs/tokio#5186 #5294: tokio-rs/tokio#5294 #5284: tokio-rs/tokio#5284 #4250: tokio-rs/tokio#4250 #5300: tokio-rs/tokio#5300 #5329: tokio-rs/tokio#5329 #5115: tokio-rs/tokio#5115 #5309: tokio-rs/tokio#5309

    Tokio v1.23.1

    This release forward ports changes from 1.18.4.

    Fixed

    • net: fix Windows named pipe server builder to maintain option when toggling pipe mode (#5336).

    #5336: tokio-rs/tokio#5336

    Tokio v1.23.0

    Fixed

    • net: fix Windows named pipe connect (#5208)
    • io: support vectored writes for ChildStdin (#5216)
    • io: fix async fn ready() false positive for OS-specific events (#5231)

    ... (truncated)

    Commits
    • 31c7e82 chore: prepare Tokio v1.24.1 (#5357)
    • 8d8db27 tokio: add load and compare_exchange_weak to loom StaticAtomicU64 (#5356)
    • dfe252d chore: prepare Tokio v1.24.0 release (#5353)
    • 21b233f test: bump version of async-stream (#5347)
    • 7299304 Merge branch 'tokio-1.23.x' into master
    • 1a997ff chore: prepare Tokio v1.23.1 release
    • a8fe333 Merge branch 'tokio-1.20.x' into tokio-1.23.x
    • ba81945 chore: prepare Tokio 1.20.3 release
    • 763bdc9 ci: run WASI tasks using latest Rust
    • 9f98535 Merge remote-tracking branch 'origin/tokio-1.18.x' into fix-named-pipes-1.20
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies rust 
    opened by dependabot[bot] 0
  • chore(deps): Bump framer-motion from 7.5.3 to 7.10.0 in /taker-frontend

    chore(deps): Bump framer-motion from 7.5.3 to 7.10.0 in /taker-frontend

    Bumps framer-motion from 7.5.3 to 7.10.0.

    Changelog

    Sourced from framer-motion's changelog.

    [7.10.0] 2022-12-15

    Added

    • .on() event method to MotionValue.
    • "animationStart", "animationComplete", "animationCancel" and "change" events for MotionValue.
    • useMotionValueEvent helper method for adding events.

    [7.9.1] 2022-12-14

    Fixed

    • Fixing mapping Framer Motion easing names to WAAPI.

    [7.9.0] 2022-12-14

    Added

    • Hardware-accelerated opacity animations.

    [7.8.1] 2022-12-14

    Changed

    • Refactored animation pipeline to better accomodate WAAPI.

    [7.9.0] 2022-12-14

    Added

    • Hardware-accelerated opacity animations.

    [7.8.1] 2022-12-14

    Changed

    • Refactored animation pipeline to better accommodate WAAPI.

    [7.8.0] 2022-12-13

    Added

    • Added private APIs for starting initial animations before React hydration and handing off to the component after hydration.

    [7.7.3] 2022-12-13

    Fixed

    • Fixed spring effect of useSpring.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps): Bump secp256k1 from 0.22.1 to 0.25.0

    chore(deps): Bump secp256k1 from 0.22.1 to 0.25.0

    Bumps secp256k1 from 0.22.1 to 0.25.0.

    Changelog

    Sourced from secp256k1's changelog.

    0.25.0 - 2022-12-07

    0.24.1 - 2022-10-25

    0.24.0 - 2022-07-20

    0.23.4 - 2022-07-14

    0.23.3 - 2022-06-29

    0.23.2 - 2022-06-27

    0.23.1 - 2022-06-24

    Enable "rand/std_rng" feature when the crate's "rnd-std" feature is enabled.

    0.23.0 - 2022-06-21

    The major change in this version is the increase of the Minimum Supported Rust Version (MSRV) from 1.29 to 1.41.1, this is a big change because it introduces Rust Edition 2018 to the codebase along with all the benefits that brings.

    Breaking changes

    New features/APIs

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • chore(deps): Bump serde_test from 1.0.145 to 1.0.150

    chore(deps): Bump serde_test from 1.0.145 to 1.0.150

    Bumps serde_test from 1.0.145 to 1.0.150.

    Release notes

    Sourced from serde_test's releases.

    v1.0.150

    • Relax some trait bounds from the Serialize impl of HashMap and BTreeMap (#2334)
    • Enable Serialize and Deserialize impls of std::sync::atomic types on more platforms (#2337, thanks @​badboy)

    v1.0.149

    • Relax some trait bounds from the Serialize impl of BinaryHeap, BTreeSet, and HashSet (#2333, thanks @​jonasbb)

    v1.0.148

    • Support remote derive for generic types that have private fields (#2327)

    v1.0.147

    • Add serde::de::value::EnumAccessDeserializer which transforms an EnumAccess into a Deserializer (#2305)

    v1.0.146

    Commits
    • d493649 Release 1.0.150
    • 0e947e6 Merge pull request #2338 from serde-rs/atomic
    • 9249dab Deduplicate atomic_impl macro calls
    • 7440e56 Deduplicate atomic_impl macro implementations
    • 0d79306 Update atomic_impl macros to have same input syntax in all cfgs
    • 37faaf2 Mention target_has_atomic stabilization
    • 650358f Replace obsolete comment about target_has_atomic support
    • 6159ead Invert use_target_has_atomic cfg
    • 692ac99 Format PR 2337 with rustfmt
    • 86161ce Adjust spacing in some macro matchers
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
Releases(0.7.0)
Owner
COMIT
COMIT is an open protocol facilitating trustless cross-blockchain applications.
COMIT
The Parity Bitcoin client

The Parity Bitcoin client. Gitter Installing from source Installing the snap Running tests Going online Importing bitcoind database Command line inter

Parity Technologies 714 Dec 21, 2022
β—‰ Arbitrary Protocols on top of Bitcoin (Bitcoin NFTs/Ordinals & Bitcoin Identities/Usernames)

β—‰ arb arb is a command-line wallet, index, and explorer interface that implements the arb protocol, which enables arbitrary protocols on top of Bitcoi

Ty Vazum 4 May 15, 2023
Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transactions of your non-custodial wallets on a provider of your choice, all while respecting your privacy

Bitcoin Push Notification Service (BPNS) Description Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transacti

BPNS 1 May 2, 2022
Minimal Bitcoin wallet intended for teaching rust-bitcoin

Insanely minimal Bitcoin wallet intended for demonstration of Rust Bitcoin ecosystem Absolutely DO NOT use with mainnet funds!!! No privacy - address

Martin HabovΕ‘tiak 4 May 5, 2023
Modern, lightweight & standard-compliant bitcoin wallet runtime & cli without rust-bitcoin dependencies

Bitcoin protocol command-line wallet & tools Modern, minimalistic & standard-compliant cold wallet from LNP/BP Standards Association. Contributing Con

BP: Bitcoin protocol 3 Jul 31, 2023
A Rust library for working with Bitcoin SV

Rust-SV A library to build Bitcoin SV applications in Rust. Documentation Features P2P protocol messages (construction and serialization) Address enco

Brenton Gunning 51 Oct 13, 2022
The Parity Bitcoin client

The Parity Bitcoin client. Gitter Installing from source Installing the snap Running tests Going online Importing bitcoind database Command line inter

Parity Technologies 714 Dec 21, 2022
A Rust library for working with Bitcoin SV

Rust-SV A library to build Bitcoin SV applications in Rust. Documentation Features P2P protocol messages (construction and serialization) Address enco

Brenton Gunning 51 Oct 13, 2022
The Parity Bitcoin client

The Parity Bitcoin client. Gitter Installing from source Installing the snap Running tests Going online Importing bitcoind database Command line inter

Parity Technologies 714 Dec 21, 2022
Iterate over bitcoin blocks

Blocks iterator Iterates over Bitcoin blocks, decoding data inside Bitcoin Core's blocks directory. Features: Blocks are returned in height order, it

Riccardo Casatta 38 Nov 8, 2022
EXPERIMENTAL: Bitcoin Core Prometheus exporter based on User-Space, Statically Defined Tracing and eBPF.

bitcoind-observer An experimental Prometheus metric exporter for Bitcoin Core based on Userspace, Statically Defined Tracing and eBPF. This demo is ba

0xB10C 24 Nov 8, 2022
Rust command line program for Bitcoin brainwallet

brainwallet Rust command line program for Bitcoin brainwallet as implemented at https://www.bitaddress.org. To run it, first install Rust, e.g. from h

Frank Buss 3 Dec 30, 2021
A cli tool to automate the building and deployment of Bitcoin nodes

ℹ️ Automate Bitcoin builds, speed up deployment Shran is an open-source cli tool being developed to address the needs of DMG Blockchain Solutions. It

Matt Williams 1 Oct 20, 2022
Rust language bindings for Bitcoin secp256k1 library.

Full documentation rust-secp256k1 rust-secp256k1 is a wrapper around libsecp256k1, a C library by Pieter Wuille for producing ECDSA signatures using t

Rust Bitcoin Community 250 Dec 18, 2022
A highly modular Bitcoin Lightning library written in Rust. Its Rust-Lightning, not Rusty's Lightning!

Rust-Lightning is a Bitcoin Lightning library written in Rust. The main crate, lightning, does not handle networking, persistence, or any other I/O. Thus, it is runtime-agnostic, but users must implement basic networking logic, chain interactions, and disk storage. More information is available in the About section.

Lightning Dev Kit 850 Jan 3, 2023
Rust implementation of the Nomic Bitcoin sidechain

Nomic Bitcoin Bridge testnet v0.3.0 (codename "gucci") Guccinet In this testnet, we've added two core featues: staking and Bitcoin integration. Full s

Nomic 77 Dec 28, 2022
Rustcoin - A LightWeight SDK For Bitcoin, Ethernum

Rustcoin - A LightWeight SDK For Bitcoin, Ethernum

Rust Coin 6 Jan 24, 2022
The Stage 2 building block to reach the dream of DSNs with Bitcoin DeFi

rust-nostr Intro A complete suite of nostr Bitcoin libraries that can be used to develop Decentralized Social Networks (DSN) with integrated Bitcoin f

Raj 82 Jan 2, 2023
A preview of the integration between Bitcoin and the Internet Computer.

Bitcoin Integration Developer Preview Overview The integration between the Internet Computer and Bitcoin will enable developers to build canisters tha

DFINITY 39 Sep 21, 2022
Matrix Bot for Bitcoin Push Notification Service

BPNS Matrix Bot Description Matrix Bot for Bitcoin Push Notification Service. Requirements Rust (1.57.0+) BPNS Server Matrix account Build cargo build

BPNS 0 Mar 14, 2022