Provably Rare Gem: Raritygems
Project description
raritygems
Provably Rare Gem Raritygems API, currently focused on mining.
Usage on Google Colab
- Reinstall jsonschema, cause of the conflict with the Python library
web3
!pip install --force-reinstall jsonschema==3.2.0
- Install packages
!pip install web3==5.23.0
!pip install raritygems
- Download salt_finder and give it permission per execute
!wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=10K-ZTxj14_BrY_ZxupvOkGXYl2Eo9mEq' -O raritygems_salt_finder
!chmod 755 raritygems_salt_finder
- Run with Python
from raritygems import raritygems
david = raritygems.Miner(
user_address="0xxxxx",
gem_kind=0, # 0 = Turquoise, 1 = Pearl, ...
salt_finder_path="/content/raritygems_salt_finder",
private_key="", # if "" is provided then it will only find a salt then exit
line_token="", # if "" is provided then it will not notify you via LINE
)
david.mine()
You can check more about gem kind here
How it works?
It basically finds a "salt" and sign a transaction for you. The program will do the following
- Get the information that needed for mining:
user_nonce
andgem_difficulty
- Use salt_finder to find a salt
- Sign a transaction to claim a gem
- Go back to step 1.
salt_finder
At first, I start with Python and try to optimize it but I realize Go is must faster. The below is what I have tried roughly on my local machine.
Project | Language | Iterations per sec |
---|---|---|
Provably-Rare-Gem-Miner | Python | 2k |
ramen | JavaScript | 20k |
GemMiner-Go | Go | 30k |
go-gem-miner | Go | 40k |
So, I write this "salt_finder" part with Go language instead, and this is command I used to built it.
# to build "salt_finder"
go build -o raritygems_salt_finder main.go
# to build "salt_finder" for Google Colab
GOOS=linux GOARCH=amd64 go build -o raritygems_salt_finder_linux main.go
Feature
- mining: auto update
gem_difficulty
- lint: setup linting: flask8
- ci-cd: pypi: publish to pypi
- ci-cd: CI & CD with GitHub Actions
- ci-cd: integrate semantic release
- test: writing automated test
- perf: performance evaluation
- info: display your current balance
- info: display your gems
- info: estimate how many times you can mine (before your have no gas left)
- gas: optimize gas price
- parallel: make it support parallel / multi-threading
- gpu: create GPU support version
- noti: refactor notification message
- noti: add more channels e.g. Facebook Messenger, email
- web3: auto claim gems
- network: support Ethereum chain
- network: support Fantom network
- info: bot nickname
- salt_finder: auto load by default when it is not provided
Project setup & CMD
TODO
conda create --name raritygems python=3.7.11
conda activate raritygems
pip uninstall raritygems -y && pip install .
go run main.go \
-user-nonce=1234 \
-user-address=0x28bc92e7b7e77d348fd262fb8e29da129308fbd3 \
-chain-id=250 \
-gem-difficulty=535996 \
-gem-address=0x342EbF0A5ceC4404CcFF73a40f9c30288Fc72611 \
-gem-entropy=0x000080440000047163a56455ac4bc6b1f1b88efadf17db76e5c52c0ca594fd9b \
-gem-kind=0 \
-salt=41543544848 \
-n=800000 \
-debug=true
Ref
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
raritygems-0.5.0.tar.gz
(6.4 kB
view details)
Built Distribution
File details
Details for the file raritygems-0.5.0.tar.gz
.
File metadata
- Download URL: raritygems-0.5.0.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1039c10f81117cab88f5d3e9fea0ce63ac9a7f801f659ab25d1de0618e7e40de |
|
MD5 | 82bb1933f60ef3f0e572537b7c7d1540 |
|
BLAKE2b-256 | 75b8c17f2dcac8e15bae070f34874d958b6105cd590cd0496824914416fad94a |
File details
Details for the file raritygems-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: raritygems-0.5.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06683a8515a0c6e86ac8b2f9128ac5dd979f8f05ba0a2dca0b26f38087acf782 |
|
MD5 | 98d0fa4cea59726d3fdeed4fd10ae2f1 |
|
BLAKE2b-256 | b2bf2bf7d8950aaeb651abcaf2f07a1b48ee83c38095dae44bd5ee39a7cb8ae7 |