{"id":19573950,"url":"https://github.com/hexresearch/ergvein-rusty","last_synced_at":"2026-05-16T05:38:02.772Z","repository":{"id":45293408,"uuid":"346526090","full_name":"hexresearch/ergvein-rusty","owner":"hexresearch","description":"Rust implementation of indexer for Ergvein wallet","archived":false,"fork":false,"pushed_at":"2022-03-14T17:52:00.000Z","size":606,"stargazers_count":0,"open_issues_count":3,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-01-09T03:56:59.353Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hexresearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-11T00:02:01.000Z","updated_at":"2021-12-23T17:07:51.000Z","dependencies_parsed_at":"2022-09-02T14:12:09.086Z","dependency_job_id":null,"html_url":"https://github.com/hexresearch/ergvein-rusty","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexresearch%2Fergvein-rusty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexresearch%2Fergvein-rusty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexresearch%2Fergvein-rusty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexresearch%2Fergvein-rusty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hexresearch","download_url":"https://codeload.github.com/hexresearch/ergvein-rusty/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240840106,"owners_count":19866168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T06:37:07.174Z","updated_at":"2026-05-16T05:37:57.740Z","avatar_url":"https://github.com/hexresearch.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Rust implementation of indexing node for [ergvein](https://github.com/hexresearch/ergvein) mobile wallet.\n\n# How to build\n\n1. The local nix shell provides [rustup](https://rustup.rs/) or install it manually.\n2. Add toolchain: `rustup toolchain add nightly \u0026\u0026 rustup default nightly`\n3. You will need `clang` and `llvm` to build rocksdb dependency.\n3. Build: `cargo build` and `cargo build --release` for release binary.\n\n# How to run\nYou will need either any public remote node, or local one (prefer for speed of indexation):\n```\ncargo run --release -- 127.0.0.1:8333\n```\n\n# How to run with docker (or any compatible container runtime)\n\nWe have official docker image [ergvein/ergvein-index-server:rusty](https://hub.docker.com/r/ergvein/ergvein-index-server/tags?page=1\u0026ordering=last_updated\u0026name=rusty) built from the `Dockerfile`.\n\n```\ndocker run --rm --volume ergveindata:/data --network host ergvein/ergvein-index-server:rusty --host 0.0.0.0 --bitcoin 127.0.0.1:8333\n```\nHere we use no network isolation and assumes that you have running BitcoinCore on the `8333` port.\n\n# How to host as service on NixOS\n1. Create nix module based on following code:\n```\n{config, lib, pkgs, ...}:\nlet\nergvein = (import \u003cnixpkgs\u003e {}).fetchFromGitHub {\n  owner = \"hexresearch\";\n  repo = \"ergvein-rusty\";\n  rev = \"c4eb3fdb19a90e0a153f97413a8ee68fd3f0efa3\";\n  sha256 = \"19q3g9w8rk5rf4a22c1a8igxbhyh3j1zln57m6px918yfq7aa131\";\n};\nin {\n  imports = [\n    \"${ergvein}/nix/modules/ergvein.nix\"\n  ];\n  config = {\n    services.ergvein = {\n      enable = true;\n      externalAddress = \"{ExternalAddress}:8667\";\n      metrics = true;\n    };\n    services.ergvein-rusty = {\n      blockBatch = 100;\n      maxCache = {UTXO_COUNT};\n    };\n \n   services.bitcoin.passwordHMAC = \"{HMAC}\";\n  };\n}\n```\nWhere:\n- ExternalAddress is IP of hosting machine thus an address of indexer\n- HMAC credentials for bitcoin node RPC. Follow this to generate your own https://github.com/bitcoin/bitcoin/tree/master/share/rpcauth\n- UTXO_COUNT is number of UTXO stored in RAM cache. Max memory consumption: 15Gb at 40000000, 10.5Gb at 20000000. Feel free to experiment with it but beware of out of memory error on high values\n2. Edit configuration.nix\n- add created module to import\n```\nimports =\n    [ # Include the results of the hardware scan.\n      ./hardware-configuration.nix\n      ./cachix.nix\n      {PATH_TO_MODULE}\n    ];\n\n```\n- allow indexer port (8667 by default for mainnet) in firewall\n```\nnetworking.firewall.allowedTCPPorts = [ 8667 ];\n```\n3 Apply changes by running ```nixos-rebuild switch``` command\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexresearch%2Fergvein-rusty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexresearch%2Fergvein-rusty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexresearch%2Fergvein-rusty/lists"}