trueblocks-core

The main repository for the TrueBlocks system

https://github.com/trueblocks/trueblocks-core

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.9%) to scientific vocabulary

Keywords

blockchain command-line-tools ethereum indexing

Keywords from Contributors

optim solidity ovm rollup l2-scaling cryptography static-analysis argument-parser speaker-encoder interactive
Last synced: 6 months ago · JSON representation

Repository

The main repository for the TrueBlocks system

Basic Info
  • Host: GitHub
  • Owner: TrueBlocks
  • License: gpl-3.0
  • Language: Go
  • Default Branch: master
  • Homepage: https://trueblocks.io
  • Size: 643 MB
Statistics
  • Stars: 1,078
  • Watchers: 12
  • Forks: 219
  • Open Issues: 27
  • Releases: 69
Topics
blockchain command-line-tools ethereum indexing
Created almost 9 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.md

If you have an existing installation, complete applicable Migrations before proceeding.


TrueBlocks / Unchained Index

GitHub repo size GitHub contributors GitHub stars GitHub forks Twitter Follow

Table of Contents

Introduction

TrueBlocks improves access to blockchain data for EVM-compatible chains (particularly Ethereum mainnet) while remaining entirely local.

Features:

  • chifra init and chifra scrape which builds the Unchained Index, an index of address appearances that provides lightning-fast access to transactional histories,

  • An optional binary cache, which speeds up queries to the RPC by orders of magnitude,

  • Enhanced command-line options enabling much better access to chain data for data scientists and analysts. For example, easily extract all logs produced by a smart contract or view all ERC-20 holdings for an account, etc.,

  • Advanced tools for producing reconciled "bank statements" and accounting export for any token including ETH.

  • An infinite number of other things restricted only by your imagination.

Installing

Please see the installation instructions on our website.

Searching account histories

While optional, you most likely want to use the Unchained Index to search account histories. To do so, get the index.

Account explorer

You may use the command line, of course, to access data, but you may also wish to run an API server:

[shell] chifra daemon

Use curl to pull data or use it to drive our "pre-beta" Account Explorer. See installing the explorer. The API provides the identical tools and options as the command line and it documented here.

Command line

The TrueBlocks command-line tool is called chifra. This gives you access to all the other tools:

[shell] chifra --help

Get more help on any sub-command with chifra <cmd> --help. Full documentation is available on our website.

Chifra Serve

One of chifra's command line tools is called serve. This tool provides a simple API mimicking the command line. It is intended to be used only for single user environments.

To start the server, run:

[shell] chifra server

Chifra was built for the command line, a fact we purposefully take advantage of to ensure continued operation on small machines. As such, this tool is not intended to serve multiple end users in a cloud-based server environment. This is by design. Be forewarned.

Get more help on any sub-command with chifra <cmd> --help. Full documentation is available on our website.

Getting data

Let's look at the first subcommand, called status.

[shell] chifra status

If you get a bunch of data, congratulations, your installation is working. Try this command which shows every 10th block between the first and the 100,000th:

[shell] chifra blocks 0-100000:10

You should see a long stream of data. Kill the display with Control+C.

See the entire list of chifra commands with chifra --help.

Troubleshooting

Depending on your setup, you may get the following error message when you run some chifra commands:

[shell] Warning: A request to your Ethereum node (http://localhost:8545) resulted in the following error [Could not connect to server]. Specify a valid rpcProvider by editing $rootPath/trueblocks.toml.

Edit the file as instructed. You may find helpful answers on our FAQ.

See our blog for a lot of useful articles on getting started and using TrueBlocks.

If you continue to have trouble, join our discord discussion

The unchained index

The primary data structure produced by TrueBlocks is an index of address appearances called the Unchained Index. This index provides very quick access to transaction histories for any address.

You may either build the entire index from scratch (requires an EVM-compatible tracing/archive node) or you may download a snapshot of the index build from there.

This process is described in the article Indexing Addresses.

Docker version

Our official docker version is in a separate repo. Please see that repo for more information on running with Docker.

Documentation

The documenation is stored in the ./docs folder of this repo. See our website for the best available documentation.

Linting

Our build process requires the code you submit to be linted.

In order to that, you must install the GoLang linters. See this page for more information.

To install the primary linter (called golangci-lint), run this command:

[shell] curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.53.3

Verify the installation with golangci-lint --version. You should see something like this:

[shell] golangci-lint has version 1.50.1 built from <commit> on <date>

Next, run golangci-lint linters. Your system should have at least the default list to properly lint your submission.

```[shell]

golangci-lint linters

``` You are encouraged to use additional linters. If you do, and you think they're useful, please suggest that we add it to our build process.

Contributing

A chart showing the number of stars on our repo over time.

Stargazers over time

We love contributors. Please see information about our workflow before proceeding.

  1. Fork this repository into your own repo.
  2. Create a branch: git checkout -b <branch_name>.
  3. Make changes to your local branch and commit them to your forked repo: git commit -m '<commit_message>'
  4. Push back to the original branch: git push origin TrueBlocks/trueblocks-core
  5. Create the pull request.

Contact

If you have questions, comments, or complaints, please join the discussion on our discord server which is linked from our website.

List of Contributors

Thanks to the following people who have contributed to this project:

Owner

  • Name: TrueBlocks, LLC
  • Login: TrueBlocks
  • Kind: organization
  • Email: jrush@quickblocks.io
  • Location: Philadelphia, PA, USA

Web 3.0 Native Desktop Applications on Ethereum

GitHub Events

Total
  • Create event: 81
  • Release event: 19
  • Issues event: 80
  • Watch event: 39
  • Delete event: 56
  • Issue comment event: 58
  • Push event: 451
  • Pull request review event: 1
  • Gollum event: 7
  • Pull request event: 137
  • Fork event: 22
Last Year
  • Create event: 81
  • Release event: 19
  • Issues event: 80
  • Watch event: 39
  • Delete event: 56
  • Issue comment event: 58
  • Push event: 451
  • Pull request review event: 1
  • Gollum event: 7
  • Pull request event: 137
  • Fork event: 22

Committers

Last synced: 12 months ago

All Time
  • Total Commits: 9,791
  • Total Committers: 60
  • Avg Commits per committer: 163.183
  • Development Distribution Score (DDS): 0.236
Past Year
  • Commits: 632
  • Committers: 17
  • Avg Commits per committer: 37.176
  • Development Distribution Score (DDS): 0.119
Top Committers
Name Email Commits
tjayrush j****h@q****o 7,477
Thomas Jay Rush j****h@g****m 1,605
Dawid Szlachta g****t@m****v 365
Carlos c****n@y****s 131
wildmolasses c****s@g****m 32
Matt Dodson m****r@g****m 25
dependabot[bot] 4****] 24
doylet d****i@s****m 19
Mihai m****a@g****m 11
Carlos Rodriguez c****s@M****l 11
johhonn 3****n 9
omahs 7****s 7
Dawid Szlachta d****s@f****m 7
root r****t@q****o 6
Maks s****6@g****m 4
Cole Helbling c****g@d****s 3
BardinPetr b****r@g****m 3
Artur Jablonski a****l@g****m 3
ArielTM a****m@g****m 3
Skylar Ray 1****y 2
Srdzank s****v@y****m 2
perama-v 8****v 2
weijiekoh w****h 2
Meriam Zandi m****i@w****l 2
user1 u****1@i****n 1
jrush j****h@l****n 1
jrush j****h@j****n 1
Tim Wijnhoven t****n@s****l 1
Thomas Jay Rush j****h@w****l 1
Thomas Jay Rush T****h 1
and 30 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 248
  • Total pull requests: 269
  • Average time to close issues: 4 months
  • Average time to close pull requests: 2 days
  • Total issue authors: 23
  • Total pull request authors: 33
  • Average comments per issue: 1.49
  • Average comments per pull request: 0.3
  • Merged pull requests: 189
  • Bot issues: 0
  • Bot pull requests: 18
Past Year
  • Issues: 28
  • Pull requests: 123
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 4 days
  • Issue authors: 7
  • Pull request authors: 25
  • Average comments per issue: 0.46
  • Average comments per pull request: 0.34
  • Merged pull requests: 73
  • Bot issues: 0
  • Bot pull requests: 11
Top Authors
Issue Authors
  • tjayrush (277)
  • dszlachta (8)
  • dreadedhamish (5)
  • sambacha (3)
  • Pfed-prog (3)
  • cevatbostancioglu (2)
  • bonze82 (1)
  • walrusmustgo (1)
  • meijiesky (1)
  • Yiin (1)
  • dependabot[bot] (1)
  • acmLL (1)
  • Abraham21 (1)
  • normalnormie (1)
  • Rouge-Trader (1)
Pull Request Authors
  • tjayrush (397)
  • dependabot[bot] (33)
  • dszlachta (25)
  • racerole (4)
  • sambacha (4)
  • Doy-lee (4)
  • wakamex (3)
  • pkucode (3)
  • romashka-btc (2)
  • dedyshkaPexto (2)
  • threehonor (2)
  • XxAlex74xX (2)
  • dannbbb1 (2)
  • gnidan (2)
  • VitalikBerashvili (2)
Top Labels
Issue Labels
enhancement (132) bug (61) TA-delayed (32) TC-tools:names (23) TC-apps:cmd (22) TC-apps:chunks (19) TC-apps:export (19) TC-apps:scrape (18) TC-tools:slurp (12) Tx-streaming (8) TC-apps:list (8) TC-apps:monitors (8) TX-renderCtx (7) TX-accounting (7) TB-build (7) TC-tools:transactions (7) TC-tools:abis (6) TC-API (6) how-to / idea (5) TS-SDK (5) TX-caching (5) TC-apps:init (5) TC-tools:blocks (5) TC-apps:status (5) TC-apps:monitors-watch (5) Epic (3) TX-scraper-bug (3) priority-blocking (2) priority (2) TC-tools:state (2)
Pull Request Labels
dependencies (33) go (19) javascript (13) python (1) enhancement (1) TC-apps:cmd (1)

Packages

  • Total packages: 10
  • Total downloads: unknown
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 3
    (may contain duplicates)
  • Total versions: 189
proxy.golang.org: github.com/TrueBlocks/trueblocks-core/src/apps/chifra
  • Versions: 15
  • Dependent Packages: 2
  • Dependent Repositories: 3
Rankings
Stargazers count: 2.1%
Forks count: 2.1%
Average: 2.8%
Dependent repos count: 2.9%
Dependent packages count: 4.2%
Last synced: 6 months ago
proxy.golang.org: github.com/TrueBlocks/trueblocks-core/sdk/v2
  • Versions: 0
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 1.7%
Stargazers count: 1.7%
Average: 4.6%
Dependent packages count: 7.0%
Dependent repos count: 7.9%
Last synced: 6 months ago
proxy.golang.org: github.com/TrueBlocks/trueblocks-core
  • Versions: 86
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 1.3%
Forks count: 1.4%
Average: 4.8%
Dependent packages count: 7.0%
Dependent repos count: 9.3%
Last synced: 6 months ago
proxy.golang.org: github.com/trueblocks/trueblocks-core
  • Versions: 87
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 1.3%
Forks count: 1.4%
Average: 4.8%
Dependent packages count: 7.0%
Dependent repos count: 9.3%
Last synced: 6 months ago
proxy.golang.org: github.com/TrueBlocks/trueblocks-core/src/go-apps/blaze
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 1.3%
Forks count: 1.4%
Average: 4.8%
Dependent packages count: 7.0%
Dependent repos count: 9.3%
Last synced: 6 months ago
proxy.golang.org: github.com/TrueBlocks/trueblocks-core/src/go-apps/flame-scrape
  • Versions: 0
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.3%
Average: 5.4%
Dependent repos count: 5.6%
Last synced: 6 months ago
proxy.golang.org: github.com/TrueBlocks/trueblocks-core/src/go-apps/findSig
  • Versions: 0
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.7%
Dependent repos count: 5.9%
Last synced: 6 months ago
proxy.golang.org: github.com/TrueBlocks/trueblocks-core/src/go-apps/acctScrape2
  • Versions: 0
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.7%
Dependent repos count: 5.9%
Last synced: 6 months ago
proxy.golang.org: github.com/TrueBlocks/trueblocks-core/sdk/v3
  • Versions: 0
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 6 months ago
proxy.golang.org: github.com/TrueBlocks/trueblocks-core/sdk
  • Versions: 0
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 7.4%
Dependent repos count: 7.9%
Last synced: 6 months ago

Dependencies

src/apps/chifra/go.mod go
  • github.com/VictoriaMetrics/fastcache v1.6.0
  • github.com/alecthomas/participle/v2 v2.0.0-alpha7
  • github.com/btcsuite/btcd v0.22.0-beta
  • github.com/bykof/gostradamus v1.0.4
  • github.com/cespare/xxhash/v2 v2.1.1
  • github.com/deckarep/golang-set v1.8.0
  • github.com/edsrzf/mmap-go v1.0.0
  • github.com/ethereum/go-ethereum v1.10.16
  • github.com/fsnotify/fsnotify v1.5.1
  • github.com/go-ole/go-ole v1.2.6
  • github.com/go-stack/stack v1.8.1
  • github.com/golang/snappy v0.0.4
  • github.com/google/uuid v1.3.0
  • github.com/gorilla/mux v1.8.0
  • github.com/gorilla/websocket v1.5.0
  • github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d
  • github.com/hashicorp/hcl v1.0.0
  • github.com/holiman/bloomfilter/v2 v2.0.3
  • github.com/holiman/uint256 v1.2.0
  • github.com/inconshreveable/mousetrap v1.0.0
  • github.com/ipfs/go-cid v0.1.0
  • github.com/klauspost/cpuid/v2 v2.0.11
  • github.com/kr/pretty v0.3.0
  • github.com/magiconair/properties v1.8.5
  • github.com/mattn/go-colorable v0.1.12
  • github.com/mattn/go-isatty v0.0.14
  • github.com/mattn/go-runewidth v0.0.13
  • github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1
  • github.com/minio/sha256-simd v1.0.0
  • github.com/mitchellh/mapstructure v1.4.2
  • github.com/mr-tron/base58 v1.2.0
  • github.com/multiformats/go-base32 v0.0.4
  • github.com/multiformats/go-base36 v0.1.0
  • github.com/multiformats/go-multibase v0.0.3
  • github.com/multiformats/go-multihash v0.1.0
  • github.com/multiformats/go-varint v0.0.6
  • github.com/olekukonko/tablewriter v0.0.5
  • github.com/panjf2000/ants/v2 v2.4.8
  • github.com/pelletier/go-toml v1.9.4
  • github.com/pkg/errors v0.9.1
  • github.com/prometheus/tsdb v0.10.0
  • github.com/rivo/uniseg v0.2.0
  • github.com/rjeczalik/notify v0.9.2
  • github.com/rogpeppe/go-internal v1.8.1
  • github.com/shirou/gopsutil v3.21.11+incompatible
  • github.com/spaolacci/murmur3 v1.1.0
  • github.com/spf13/afero v1.6.0
  • github.com/spf13/cast v1.4.1
  • github.com/spf13/cobra v1.2.1
  • github.com/spf13/jwalterweatherman v1.1.0
  • github.com/spf13/pflag v1.0.5
  • github.com/spf13/viper v1.9.0
  • github.com/subosito/gotenv v1.2.0
  • github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7
  • github.com/tklauser/go-sysconf v0.3.9
  • github.com/tklauser/numcpus v0.4.0
  • github.com/wealdtech/go-ens/v3 v3.5.2
  • github.com/wealdtech/go-multicodec v1.4.0
  • github.com/yusufpapurcu/wmi v1.2.2
  • golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064
  • golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd
  • golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8
  • golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
  • golang.org/x/text v0.3.7
  • golang.org/x/time v0.0.0-20220224211638-0e9765cccd65
  • gopkg.in/ini.v1 v1.63.2
  • gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce
  • gopkg.in/yaml.v2 v2.4.0
  • lukechampine.com/blake3 v1.1.7
src/apps/chifra/go.sum go
  • 1040 dependencies
.github/workflows/build-and-test.yml actions
  • actions/checkout v2 composite
  • actions/setup-go v2 composite
  • appleboy/ssh-action master composite
.github/workflows/doc-automation.yaml actions
  • actions/checkout v2 composite
  • dmnemec/copy_file_to_another_repo_action main composite
.github/workflows/golangci-lint.yml actions
  • actions/checkout v3 composite
  • actions/setup-go v3 composite
  • golangci/golangci-lint-action v3 composite
src/other/build_assets/remote_testing/Dockerfile docker
  • golang 1.18-buster build
.github/workflows/build-docker.yml actions
  • actions/github-script v6 composite
sdk/typescript/package.json npm
  • @types/jest ^29.2.4 development
  • @types/node ^18.11.16 development
  • @types/react ^18.0.26 development
  • @typescript-eslint/eslint-plugin ^5.46.1 development
  • @typescript-eslint/parser ^5.46.1 development
  • eslint ^8.30.0 development
  • eslint-config-airbnb ^18.2.1 development
  • eslint-import-resolver-typescript ^2.4.0 development
  • eslint-plugin-import ^2.22.1 development
  • eslint-plugin-jsx-a11y ^6.4.1 development
  • eslint-plugin-react ^7.22.0 development
  • eslint-plugin-react-hooks ^4.2.0 development
  • eslint-plugin-simple-import-sort ^7.0.0 development
  • typescript ^4.9.4
  • vitest ^0.29.2
sdk/typescript/yarn.lock npm
  • 358 dependencies
sdk/yarn.lock npm
sdk/python/requirements.txt pypi
  • pytest ==7.2.0
  • requests ==2.31.0
  • vcrpy ==4.2.1
src/other/python-ext/setup.py pypi