MCPcopy Index your code
hub / github.com/PoC-Consortium/scavenger

github.com/PoC-Consortium/scavenger @1.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.9.0 ↗ · + Follow
389 symbols 637 edges 49 files 158 documented · 41% updated 3y ago1.9.0 · 2021-06-12★ 1061 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Build Status License: GPL v3

Scavenger - PoC miner in Rust

Features

  • windows, linux, macOS, android & more
  • x86 32 & 64bit, arm, aarch64
  • direct io
  • avx512f, avx2, avx, sse, neon
  • opencl
  • fastest PoC miner there is

Documentation/Wiki

https://github.com/PoC-Consortium/scavenger/wiki

Binary + source code releases

https://github.com/PoC-Consortium/scavenger/releases

Scavenger can also be installed directly via cargo:

cargo install scavenger

Development Requirements

  • new version of rust, stable toolchain

Compile, test, ...

Binaries are in target/debug or target/release depending on optimization.

# decide on features to run/build:
simd: support for SSE2, AVX, AVX2 and AVX512F (x86_cpu)
neon: support for Arm NEON (arm_cpu)
opencl: support for OpenCL (gpu)

# build debug und run directly
e.g. cargo run --features=simd    #for a cpu version with SIMD support

# build debug (unoptimized)
e.g cargo build --features=neon   #for a arm cpu version with NEON support

# build release (optimized)
e.g. cargo build --release --features=opencl,simd    #for a cpu/gpu version

# test
cargo test  [--features={opencl,simd,neon}]

Run

scavenger --help

Config

The miner needs a config.yaml file with the following structure:

https://github.com/PoC-Consortium/scavenger/blob/master/config.yaml

Docker

A docker image based on alpine linux is built automatically on every commit to master: pocconsortium/scavenger This image will use only your cpu.

To run it on the fly use something like this:

docker run \
--rm \
--name scavenger \
--volume /path/to/your/config.yaml:/data/config.yaml \
--volume /path/to/your/disks:/disks \
pocconsortium/scavenger

Alternatively a docker compose file could look like this:

version: '2'
services:
  scavenger:
    image: pocconsortium/scavenger
    restart: always
    volumes:
      - /path/to/your/disks:/disks
      - /path/to/your/config.yaml:/data/config.yaml

Donate

  • bold: BURST-8V9Y-58B4-RVWP-8HQAV
  • architecture
  • linux support
  • JohnnyDeluxe: BURST-S338-R6VC-LTFA-2GC6G
  • open cl
  • direct io
  • shabal optimizations
  • windows support

Extension points exported contracts — how you extend this code

Buffer (Interface)
(no doc) [2 implementers]
src/miner.rs

Core symbols most depended-on inside this repo

_mm_add_epi32
called by 555
src/c/SSE2NEON.h
perm_elt
called by 96
src/shabal256.rs
_mm_set1_epi32
called by 39
src/c/SSE2NEON.h
_mm_xor_si128
called by 30
src/c/SSE2NEON.h
_mm_loadu_si128
called by 27
src/c/SSE2NEON.h
sph_enc32le_aligned
called by 18
src/c/sph_types.h
_mm_storeu_si128
called by 18
src/c/SSE2NEON.h
_mm_or_si128
called by 15
src/c/SSE2NEON.h

Shape

Function 305
Method 53
Class 26
Enum 4
Interface 1

Languages

Rust46%
C++42%
C13%

Modules by API surface

src/c/SSE2NEON.h140 symbols
src/config.rs37 symbols
src/ocl.rs22 symbols
src/c/sph_types.h22 symbols
src/shabal256.rs15 symbols
src/miner.rs15 symbols
src/com/api.rs15 symbols
src/com/client.rs13 symbols
src/requests.rs11 symbols
src/future/prio_retry.rs9 symbols
src/reader.rs8 symbols
src/plot.rs8 symbols

For agents

$ claude mcp add scavenger \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact