What makes me laugh are the fools that think ordinals are to blame. they are a mere tool.
Ordinals are just a tool that has emerged that facilitates this scheme of trying to cause network constation with the aim of increasing fees - as a result, they continue. I am of the opinion that we are entering a time where the large mining pools are close to functioning as a cartel in order to "control" how the network works. It will always be very difficult to prove this, and of course it is just my opinion, but looking at how mining is going, this scenario is quite possible. We are left with just 4 or 5 large mining pools, which control more than 50% of the hash. I think it is increasingly important to decentralize mining, because it is becoming very centralized. How can this be done? Unfortunately, I can't come up with an idea of how to decentralize, but at least putting the issue in public debate is a way forward. I've said it for years: more people running their own pools would help a lot. The reason behind this is simple; pools and mining have always been shrouded in mystery for some reason. Movements like Bitaxe, I believe, are starting to bring mining more into the light, along with pools. 1 Miner - 1 Pool. 1 CPU - 1 Vote. I've said for years that if more user-friendly solutions emerge for running your own pool, many would do this, and the network would look very different in a very short space of time, I believe. Though would people give up on the exsisting way. Probably not but would be pretty spectacular if it happened.
|
|
|
I have always been interested in the wordlist used by a early version of Electrum. 1626 words was the list size and it related to a US patent no 5892470 were each word does not represent a given digit. Instead, the digit represented by a word is variable, it depends on the previous word. I'm sure it used the list from http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists/Contemporary_poetrySince the wordlist was only 1626 would this not weaken anything generated by the early version of Elecrum 2011. Something I have been looking at for some time now but never really seen it brought up in any of the topics around wordlists.
|
|
|
Most of the detailed specifications of the chip are not available. What I would advise is to buy chips on AliExpress can get them for a few $ each. https://www.aliexpress.com/item/1005003187958359.htmlThe Antminer BM1362AJS is for the 19j / S19j Pro and the S19j Pro hash board has a total of 126 BM1362AJ chips. Maybe others can share the dimentions and other spec lists if they have.
|
|
|
Why are you bumping something that no longer works.
Omegle was shutdown you cannot sell a script for a site that is no longer working.
You are also bump spamming...
|
|
|
Wish me luck { "hashrate1m": "7.52P", "hashrate5m": "4.98P", "hashrate1hr": "1.26P", "hashrate1d": "64.8T", "hashrate7d": "9.34T", "lastshare": 1702709546, "workers": 37, "shares": 1318000000, "bestshare": 9046978672.360407, "bestever": 9046978672, "authorised": 1702706924,
|
|
|
100% scam!
Don't waste your time.
|
|
|
The generation of the base point G in ECC, especially for curves like secp256k1, is typically shrouded in some mystery. The "nothing up my sleeve" number is often used in creating these curves to ensure that the base point wasn't chosen to weaken the encryption. Using x = 0x1 and Different Values of kYour observation here is aligned with the properties of elliptic curves where scalar multiplication can lead to different points on the curve, depending on your chosen scalar ( k). Your experiments demonstrate intriguing behaviors when you vary k. This aligns with the cyclic nature of elliptic curves over finite fields. The behavior you noted when using different primes ( p) and modifying the curve shows how these parameters significantly affect the curve's properties. def ecc_add(p1, p2, p): # Elliptic curve addition if p1 == (0, 0): return p2 if p2 == (0, 0): return p1 if p1[0] == p2[0] and p1[1] != p2[1]: return (0, 0) if p1 != p2: m = (p2[1] - p1[1]) * pow(p2[0] - p1[0], -1, p) % p else: m = (3 * p1[0]**2 + 7) * pow(2 * p1[1], -1, p) % p x3 = (m**2 - p1[0] - p2[0]) % p y3 = (m * (p1[0] - x3) - p1[1]) % p return (x3, y3)
def ecc_mul(point, k, p): # Elliptic curve scalar multiplication result = (0, 0) addend = point
while k: if k & 1: result = ecc_add(result, addend, p) addend = ecc_add(addend, addend, p) k >>= 1
return result
# Define curve parameters for secp256k1 p = 2**256 - 2**32 - 977 # Prime for the finite field x = 0x1 y = 0x4218f20ae6c646b363db68605822fb14264ca8d2587fdd6fbc750d587e76a7ee
# usage k = 2 # Scalar to multiply point = (x, y) result = ecc_mul(point, k, p) print(f"Resulting Point: {result}")
Resulting Point: (14474011154664524427946373126085988481658748083205070504932198000988604333959, 72704176545891799367084825159033606358294843509675418738294063466241294077822)
|
|
|
Instead of running a full node, you may consider using a lightweight client or a Simplified Payment Verification (SPV) client.
Since the SPV clients don't download the entire blockchain but verify transactions by downloading only the block headers, which is significantly less data. Block headers contain proof-of-work and can be used to check the validity of a block. They also include the Merkle root to verify the presence of a transaction within a block.
To quickly ascertain that a block is accepted by the network, you can check the number of confirmations it has. The more confirmations (subsequent blocks added to the chain), the higher the certainty that the network has accepted the block.
Typically, a block with 6 confirmations is considered secure and irreversible. For your purposes, even a block with 1-2 confirmations might suffice, considering you are using it for time verification rather than financial transactions.
One thing to note is the risk of MITM attacks.
To mitigate these risks, consider using multiple, reputable sources to fetch block headers. This reduces the likelihood of falling prey to targeted attacks on a single source. You can also cross-verify the block information with public blockchain explorers or through APIs provided by trusted entities in the blockchain space.
One possible way to do this would be to define a protocol within your program to query multiple nodes or sources.?
A possible area to look into is how to establish a criteria for accepting a block's timestamp (e.g., minimum number of confirmations, cross-verification with other sources)
Implement checks for discrepancies in the timestamps received from different nodes.
Since your goal is not to run a full Bitcoin node but to use the blockchain as a clock, your program can be optimized to start the verification process from the most recent block known and work backward as needed.
I think this would be the most logical steps based on your OP.
Best regard.
Raccoon!
|
|
|
The recurrence of points like (1, 2) on various elliptic curves is due to their structure and properties. As elliptic curves are typically defined over fields like the real numbers or finite fields and their equation generally follows the form : y^2 = x^3 + ax + b. For a point (1, 2) to satisfy multiple curves, the coefficients a and b must align accordingly. For curves of the form y^2 = x^3 + b, substituting x = 1 and y = 2 gives us 2^2 = 1^3 + b, leading to b = 3. This process can be repeated for any value of b to check if a particular point lies on the curve. Python Script for Analyzing Points on Elliptic Curves: import matplotlib.pyplot as plt import numpy as np
def is_on_curve(x, y, b): return y**2 == x**3 + b
def plot_elliptic_curves(b_values, points, x_range): fig, ax = plt.subplots(figsize=(12, 8)) x = np.linspace(x_range[0], x_range[1], 400) for b in b_values: y_squared = x**3 + b y_positive = np.sqrt(y_squared) y_negative = -y_positive ax.plot(x, y_positive, label=f"y² = x³ + {b}") ax.plot(x, y_negative, label=f"_") for point in points: if is_on_curve(point[0], point[1], b): ax.plot(point[0], point[1], 'ro') ax.set_xlabel("x") ax.set_ylabel("y") ax.set_title("Elliptic Curves and Points") ax.legend() plt.grid(True) plt.show()
b_values = range(1, 11) points_to_test = [(1, 2), (1, 3), (2, 3), (2, 4)] x_range = (-2, 3) plot_elliptic_curves(b_values, points_to_test, x_range)
This script can be expanded to test a larger set of points and a broader range of b values. Results : For b = 1, the point (2, 3) lies on the curve y^2 = x^3 + 1. For b = 3, the point (1, 2) lies on y^2 = x^3 + 3, as in your example. For b = 8, the points (1, 3) and (2, 4) lie on y^2 = x^3 + 8. No points tested lie on the curves for b = 2, 4, 5, 6, 7, 9, 10. This script can be expanded to test a larger set of points and a broader range of b values. Your observation about even private keys generating valid x coordinates but invalid y coordinates for secp256k1 is interesting. It suggests a possible pattern or property of the curve that might be worth exploring The use of a specific value like lambda to create a triangle and the effects on the x coordinates is a part of exploring the geometrical properties of elliptic curves. The invariant y coordinate in your experiments is peculiar and might be an artifact of the specific curve and values you're using. While it's theoretically possible to reverse-engineer k from P and G, the computational power required makes it impractical I believe. Magic.
|
|
|
I am trialling a new feature on solo.ckpool.org in the interests of ultimate transparency that allows you to monitor which transactions are being included in the current block template. From the website explanation: Transaction selection transparency:Solo.ckpool.org does not filter any transactions and uses default bitcoin core transaction selection. Live monitoring of the current transactions can be done at any time by examining the following URL: https://solo.ckpool.org/pool.txnsThis can also be used to monitor the likelihood of your personal transactions being mined in the next block at any pool. As this uses a moderate amount of bandwidth, please minimise your usage of this to avoid me needing to disable this service. I Love the new addition CK, know your not a feature rich guy but this is nice to see. I updated my python code to also display transaction and there data in the template just scrolling over some of them as some output. New output at the bottom of the code will clear the lines and show the new data. It grabs the data from the BTC.com api and from the pool website. Enjoy! ******************************************** * Bitcoin Block Information * ******************************************** Attribute Value ----------------------------- ---------------------------------------------------------------- Block Height 819073 Block Version 655417344 Merkle Root 5072df3548632f8e414508f9056011023c4d5d81f42c5aef62ec9ab9cd19e544 Timestamp 1701318510 Bits 386147408 Nonce 3533778960 Previous Block Hash 00000000000000000001c620ac2780c7367e63a6ccd512d9dbd190e64dac0031 Next Block Hash 0000000000000000000000000000000000000000000000000000000000000000 Block Size (bytes) 1667343 Pool Difficulty 111311022198484 Difficulty Double 67957790298897.88 Reward per Block (BTC) 6.25 Reward Fees (BTC) 0.62521383 Number of Transactions 3484 Confirmations 1 Is Orphan False Current Max Timestamp 1701318510 Is SegWit Block True Stripped Size (bytes) 775194 Signature Operations (SigOps) 11551 Block Weight 3992925 Chance per Hash 0.0000000004
******************************************** * CKPool Solo Mining Pool Status * ******************************************** Runtime: 14875099 seconds Last Update: 1701318676 Users: 4497 Workers: 8004 Idle: 3811 Disconnected: 1664
Hashrates: 1-Minute Hashrate: 87.2P
Mining Stats: Difficulty: 5.36 Accepted Shares: 3640252011357 Rejected Shares: 8857127383 Best Share: 2440857253248 Shares Per Second (1-Minute): 620.0 Shares Per Second (5-Minute): 605.0 Shares Per Second (15-Minute): 599.0 Shares Per Second (1-Hour): 602.0 Fetching details for TXID: 15f67615bd6b8b59e01166b48ca5e1f19bfa6f10c4b23931bea08110d1274b84 Fetching details for TXID: fd9d85a4b07141c42295716072b726ded275e0f922749d6f3062f306fe2453f1 Fetching details for TXID: 000077a6a17f0da1021fc9b887a6027985319b6f27e446c1b25169bcead9ffa0 Block Height: -1 Transaction Hash: 000077a6a17f0da1021fc9b887a6027985319b6f27e446c1b25169bcead9ffa0 Confirmations: 0 Fee: 12480 Inputs Count: 1 Outputs Count: 1
The Code # Bitcoin Block Tracking + CK Pool Stats # Checks for new block data every 5 min from BTC.com # Checks Solo pool stats and displays them # Enjoy - MagicByt3 import requests import json import time from tabulate import tabulate
# Define the API URLs bitcoin_api_url = "https://chain.api.btc.com/v3/block/latest" ckpool_api_url = "https://solo.ckpool.org/pool/pool.status"
## Fetch transactions in template data from BTC.com API
def fetch_transaction_details(txid): tx_api_url = f"https://chain.api.btc.com/v3/tx/{txid}?verbose=3"
try: response = requests.get(tx_api_url) if response.status_code == 200: return response.json() else: print(f"Failed to fetch details for TXID: {txid}") return None except Exception as e: print(f"An error occurred while fetching transaction details: {str(e)}") return None
## Fetch transactions in template *new feature*
def fetch_pool_transactions(): ckpool_tx_url = "https://solo.ckpool.org/pool.txns"
try: response = requests.get(ckpool_tx_url) if response.status_code == 200: txns = response.text.strip().split('\n') return txns else: print("Failed to fetch transactions from CKPool") return None except Exception as e: print(f"An error occurred while fetching transactions: {str(e)}") return None
# Function to fetch and display Bitcoin block data def fetch_bitcoin_block_data(): try: # Make an HTTP GET request to the Bitcoin API response = requests.get(bitcoin_api_url)
# Check if the request was successful if response.status_code == 200: # Parse the JSON response data = response.json()
# Extract Bitcoin block details version = data["data"]["version"] merkle_root = data["data"]["mrkl_root"] timestamp = data["data"]["timestamp"] bits = data["data"]["bits"] nonce = data["data"]["nonce"] prev_block_hash = data["data"]["prev_block_hash"] next_block_hash = data["data"]["next_block_hash"] block_size = data["data"]["size"] pool_difficulty = data["data"]["pool_difficulty"] difficulty_double = data["data"]["difficulty_double"] reward_fees = data["data"]["reward_fees"] confirmations = data["data"]["confirmations"] is_orphan = data["data"]["is_orphan"] curr_max_timestamp = data["data"]["curr_max_timestamp"] is_sw_block = data["data"]["is_sw_block"] stripped_size = data["data"]["stripped_size"] sigops = data["data"]["sigops"] weight = data["data"]["weight"]
# Calculate the chance of solving a block per hash difficulty = data["data"]["difficulty"] hashrate = data["data"]["pool_difficulty"] chance_per_hash = 1 / (difficulty * 2**32 / hashrate)
# Display the Bitcoin block data in a table print("\n********************************************") print("* Bitcoin Block Information *") print("********************************************") print(tabulate([ ["Block Height", data['data']['height']], ["Block Version", version], ["Merkle Root", merkle_root], ["Timestamp", timestamp], ["Bits", bits], ["Nonce", nonce], ["Previous Block Hash", prev_block_hash], ["Next Block Hash", next_block_hash], ["Block Size (bytes)", block_size], ["Pool Difficulty", pool_difficulty], ["Difficulty Double", difficulty_double], ["Reward per Block (BTC)", data['data']['reward_block'] / 100000000], ["Reward Fees (BTC)", reward_fees / 100000000], ["Number of Transactions", data['data']['tx_count']], ["Confirmations", confirmations], ["Is Orphan", is_orphan], ["Current Max Timestamp", curr_max_timestamp], ["Is SegWit Block", is_sw_block], ["Stripped Size (bytes)", stripped_size], ["Signature Operations (SigOps)", sigops], ["Block Weight", weight], ["Chance per Hash", f"{chance_per_hash:.10f}"] ], headers=["Attribute", "Value"]))
else: print("Failed to fetch Bitcoin block data from the API") except Exception as e: print(f"An error occurred while fetching Bitcoin block data: {str(e)}")
# Function to fetch and display CKPool Solo Mining Pool status def fetch_pool_status(): try: # Make an HTTP GET request to the CKPool URL response = requests.get(ckpool_api_url)
# Check if the request was successful if response.status_code == 200: # Split the response into individual JSON objects response_lines = response.text.strip().split('\n')
# Initialize variables to store CKPool data ckpool_data = { 'runtime': 'N/A', 'lastupdate': 'N/A', 'Users': 'N/A', 'Workers': 'N/A', 'Idle': 'N/A', 'Disconnected': 'N/A', 'hashrate1m': 'N/A', 'diff': 'N/A', 'accepted': 'N/A', 'rejected': 'N/A', 'bestshare': 'N/A', 'SPS1m': 'N/A', 'SPS5m': 'N/A', 'SPS15m': 'N/A', 'SPS1h': 'N/A' }
# Process each JSON object separately for response_json in response_lines: data = json.loads(response_json)
# Update CKPool data with the latest values ckpool_data.update(data)
# Display the retrieved CKPool data print("\n********************************************") print("* CKPool Solo Mining Pool Status *") print("********************************************") print(f"Runtime: {ckpool_data['runtime']} seconds") print(f"Last Update: {ckpool_data['lastupdate']}") print(f"Users: {ckpool_data['Users']}") print(f"Workers: {ckpool_data['Workers']}") print(f"Idle: {ckpool_data['Idle']}") print(f"Disconnected: {ckpool_data['Disconnected']}") # Check if "hashrate1m" exists in the CKPool data hashrate1m = ckpool_data.get('hashrate1m', 'N/A') if hashrate1m != 'N/A': print("\nHashrates:") print(f"1-Minute Hashrate: {hashrate1m}")
# Check if "diff" exists in the CKPool data diff = ckpool_data.get('diff', 'N/A') if diff != 'N/A': print("\nMining Stats:") print(f"Difficulty: {diff}") print(f"Accepted Shares: {ckpool_data['accepted']}") print(f"Rejected Shares: {ckpool_data['rejected']}") print(f"Best Share: {ckpool_data['bestshare']}") print(f"Shares Per Second (1-Minute): {ckpool_data['SPS1m']}") print(f"Shares Per Second (5-Minute): {ckpool_data['SPS5m']}") print(f"Shares Per Second (15-Minute): {ckpool_data['SPS15m']}") print(f"Shares Per Second (1-Hour): {ckpool_data['SPS1h']}")
else: print("Failed to fetch CKPool Solo Mining Pool data") except Exception as e: print(f"An error occurred while fetching CKPool Solo Pool statistics: {str(e)}")
def clear_lines(num_lines): for _ in range(num_lines): # Move cursor up one line print("\033[A", end='') # Clear line print("\033[K", end='')
while True: fetch_bitcoin_block_data() fetch_pool_status()
txns = fetch_pool_transactions() while txns: for txn in txns: print(f"Fetching details for TXID: {txn}") tx_details = fetch_transaction_details(txn) if tx_details and tx_details.get('data'): data = tx_details['data'] print(f"Block Height: {data['block_height']}") print(f"Transaction Hash: {data['hash']}") print(f"Confirmations: {data['confirmations']}") print(f"Fee: {data['fee']}") print(f"Inputs Count: {data['inputs_count']}") print(f"Outputs Count: {data['outputs_count']}")
if data['confirmations'] > 0: clear_lines(7) # Adjust the number based on printed lines break # Break the inner loop to fetch new transactions
time.sleep(5) # Adjust the duration as needed clear_lines(7) # Clear the number of lines printed above
# Refetch the transactions list txns = fetch_pool_transactions()
print("\nNext update in 5 minutes...") time.sleep(300) # Sleep for 5 minutes before the next update
Keep hashing lads!
|
|
|
Group is now closed was not enough interest in the idea.
I have withdrawn my 0.1 ETH I deposited to kick off the rounds.
Shame there was no interest in this the idea has big potential.
Best regards.
Magic
|
|
|
I would love to add another 0 to get 20 th. Unfortunately my situation makes using too much wattage difficult and dicey as well with very old household wiring and I have to consider noise as well. My power is technically free, I would feel inclined to share the cost of energy if I use much more wattage.
Something I have considered is getting an asic miner like an S9, but using only one hash board to cut the wattage, but also gaining extra hash power. Perhaps installing quiet fans. That could possibly work.
Even if you add a zero go from 2 to 20 th you are looking at 404 years before you hit a block. Now I am on a very small pool we have about 400th on the whole pool. I would say our chances are 1 block in 20 years. Which is a long fucking time. But like you my power cost to mine 50th there is zero. You still mining on that small pool? is it still going? I might fire the old S3's on there they are looking mighty dusty but still in great condition and work flawless.
|
|
|
You can use this https://goerli-faucet.pk910.de/This is an Ethereum Faucet running on the Goerli Testnet. To prevent malicious actors from exhausting all available funds or accumulating enough Ether to mount long running spam attacks, this faucet requires some mining work to be done in exchange for free testnet funds. How does this work? Just enter your ETH Address and start mining. When you've collected enough ETH, stop mining and claim your rewards. For a more detailed technical description, check out this page. https://github.com/pk910/PoWFaucet/wiki
|
|
|
Still spaces on the run : 9/10 Spaces Remain Buy in : 0.1 ETH Round Duration : 24 hours Target Hashrate : 20-25ph *depending on rates available at time of launch.
⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣴⣶⣾⣿⣿⣿⣿⣷⣶⣦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀ ⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀ ⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⠟⠿⠿⡿⠀⢰⣿⠁⢈⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀ ⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣤⣄⠀⠀⠀⠈⠉⠀⠸⠿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀ ⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⢠⣶⣶⣤⡀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡆ ⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠼⣿⣿⡿⠃⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣷ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢀⣀⣀⠀⠀⠀⠀⢴⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢿⣿⣿⣿⣿⣿⣿⣿⢿⣿⠁⠀⠀⣼⣿⣿⣿⣦⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡿ ⠸⣿⣿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠛⠛⠿⠟⠋⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⠇ ⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⣤⡄⠀⣀⣀⣀⣀⣠⣾⣿⣿⣿⣿⣿⣿⣿⡟⠀ ⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣄⣰⣿⠁⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀ ⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀ ⠀⠀⠀⠀⠀⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠻⠿⢿⣿⣿⣿⣿⡿⠿⠟⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀
How to join the run. 1. Head over to the smart contract > https://etherscan.io/address/0xc51972112f899b9d02a2716e44fa4ccd1f066d55#writeContract2. Select write contract then selected the deposit function. 3. Input the amount 0.1 and your BTC address in the field below. 4. Come post your TXID in the chat. ID |User | TXID --------------------------------------------------------------------------------------------------------- 1 | MagicByt3 | 0x4dc994f6d34bb8648791d3c2ef47cdca60378442e861c1b77041365f5a59a4fe --------------------------------------------------------------------------------------------------------- 2 | --------------------------------------------------------------------------------------------------------- 3 | --------------------------------------------------------------------------------------------------------- 4 | --------------------------------------------------------------------------------------------------------- 5 | --------------------------------------------------------------------------------------------------------- 6 | --------------------------------------------------------------------------------------------------------- 7 | --------------------------------------------------------------------------------------------------------- 8 | --------------------------------------------------------------------------------------------------------- 9 | --------------------------------------------------------------------------------------------------------- 10 | ---------------------------------------------------------------------------------------------------------
|
|
|
Build one of these a while back for the community but thought it needed some updates. Tracks latest bitcoin block from BTC.com checking every 5 min for new data. Tracks the CKSolo pool stats checking the pool link every 5 min for new data. Uses Tabulate to format the text and everything else is pure python. Will maybe add in user stats like enter your CKSolo address to show your miner stats if people would like. Wen Block! # Bitcoin Block Tracking + CK Pool Stats # Checks for new block data every 5 min from BTC.com # Checks Solo pool stats and displays them # Enjoy - MagicByt3 import requests import json import time from tabulate import tabulate
# Define the API URLs bitcoin_api_url = "https://chain.api.btc.com/v3/block/latest" ckpool_api_url = "https://solo.ckpool.org/pool/pool.status"
# Function to fetch and display Bitcoin block data def fetch_bitcoin_block_data(): try: # Make an HTTP GET request to the Bitcoin API response = requests.get(bitcoin_api_url)
# Check if the request was successful if response.status_code == 200: # Parse the JSON response data = response.json()
# Extract Bitcoin block details version = data["data"]["version"] merkle_root = data["data"]["mrkl_root"] timestamp = data["data"]["timestamp"] bits = data["data"]["bits"] nonce = data["data"]["nonce"] prev_block_hash = data["data"]["prev_block_hash"] next_block_hash = data["data"]["next_block_hash"] block_size = data["data"]["size"] pool_difficulty = data["data"]["pool_difficulty"] difficulty_double = data["data"]["difficulty_double"] reward_fees = data["data"]["reward_fees"] confirmations = data["data"]["confirmations"] is_orphan = data["data"]["is_orphan"] curr_max_timestamp = data["data"]["curr_max_timestamp"] is_sw_block = data["data"]["is_sw_block"] stripped_size = data["data"]["stripped_size"] sigops = data["data"]["sigops"] weight = data["data"]["weight"]
# Calculate the chance of solving a block per hash difficulty = data["data"]["difficulty"] hashrate = data["data"]["pool_difficulty"] chance_per_hash = 1 / (difficulty * 2**32 / hashrate)
# Display the Bitcoin block data in a table print("\n********************************************") print("* Bitcoin Block Information *") print("********************************************") print(tabulate([ ["Block Height", data['data']['height']], ["Block Version", version], ["Merkle Root", merkle_root], ["Timestamp", timestamp], ["Bits", bits], ["Nonce", nonce], ["Previous Block Hash", prev_block_hash], ["Next Block Hash", next_block_hash], ["Block Size (bytes)", block_size], ["Pool Difficulty", pool_difficulty], ["Difficulty Double", difficulty_double], ["Reward per Block (BTC)", data['data']['reward_block'] / 100000000], ["Reward Fees (BTC)", reward_fees / 100000000], ["Number of Transactions", data['data']['tx_count']], ["Confirmations", confirmations], ["Is Orphan", is_orphan], ["Current Max Timestamp", curr_max_timestamp], ["Is SegWit Block", is_sw_block], ["Stripped Size (bytes)", stripped_size], ["Signature Operations (SigOps)", sigops], ["Block Weight", weight], ["Chance per Hash", f"{chance_per_hash:.10f}"] ], headers=["Attribute", "Value"]))
else: print("Failed to fetch Bitcoin block data from the API") except Exception as e: print(f"An error occurred while fetching Bitcoin block data: {str(e)}")
# Function to fetch and display CKPool Solo Mining Pool status def fetch_pool_status(): try: # Make an HTTP GET request to the CKPool URL response = requests.get(ckpool_api_url)
# Check if the request was successful if response.status_code == 200: # Split the response into individual JSON objects response_lines = response.text.strip().split('\n')
# Initialize variables to store CKPool data ckpool_data = { 'runtime': 'N/A', 'lastupdate': 'N/A', 'Users': 'N/A', 'Workers': 'N/A', 'Idle': 'N/A', 'Disconnected': 'N/A', 'hashrate1m': 'N/A', 'diff': 'N/A', 'accepted': 'N/A', 'rejected': 'N/A', 'bestshare': 'N/A', 'SPS1m': 'N/A', 'SPS5m': 'N/A', 'SPS15m': 'N/A', 'SPS1h': 'N/A' }
# Process each JSON object separately for response_json in response_lines: data = json.loads(response_json)
# Update CKPool data with the latest values ckpool_data.update(data)
# Display the retrieved CKPool data print("\n********************************************") print("* CKPool Solo Mining Pool Status *") print("********************************************") print(f"Runtime: {ckpool_data['runtime']} seconds") print(f"Last Update: {ckpool_data['lastupdate']}") print(f"Users: {ckpool_data['Users']}") print(f"Workers: {ckpool_data['Workers']}") print(f"Idle: {ckpool_data['Idle']}") print(f"Disconnected: {ckpool_data['Disconnected']}") # Check if "hashrate1m" exists in the CKPool data hashrate1m = ckpool_data.get('hashrate1m', 'N/A') if hashrate1m != 'N/A': print("\nHashrates:") print(f"1-Minute Hashrate: {hashrate1m}")
# Check if "diff" exists in the CKPool data diff = ckpool_data.get('diff', 'N/A') if diff != 'N/A': print("\nMining Stats:") print(f"Difficulty: {diff}") print(f"Accepted Shares: {ckpool_data['accepted']}") print(f"Rejected Shares: {ckpool_data['rejected']}") print(f"Best Share: {ckpool_data['bestshare']}") print(f"Shares Per Second (1-Minute): {ckpool_data['SPS1m']}") print(f"Shares Per Second (5-Minute): {ckpool_data['SPS5m']}") print(f"Shares Per Second (15-Minute): {ckpool_data['SPS15m']}") print(f"Shares Per Second (1-Hour): {ckpool_data['SPS1h']}")
else: print("Failed to fetch CKPool Solo Mining Pool data") except Exception as e: print(f"An error occurred while fetching CKPool Solo Pool statistics: {str(e)}")
while True: fetch_bitcoin_block_data() fetch_pool_status() print("\nNext update in 5 minutes...") time.sleep(300) # Sleep for 5 minutes before the next update
Output : ******************************************** * Bitcoin Block Information * ******************************************** Attribute Value ----------------------------- ---------------------------------------------------------------- Block Height 808888 Block Version 817111040 Merkle Root c703c789d11dd9e3cef477226cd8f41792b07e00e4633b4ec1b37813efe95af9 Timestamp 1695416418 Bits 386198911 Nonce 1083282446 Previous Block Hash 000000000000000000048125724081742223be8ce40d3bedaf58a085f4eb64bd Next Block Hash 0000000000000000000000000000000000000000000000000000000000000000 Block Size (bytes) 1373235 Pool Difficulty 61377932976195 Difficulty Double 57119871304635.31 Reward per Block (BTC) 6.25 Reward Fees (BTC) 0.4803776 Number of Transactions 2650 Confirmations 1 Is Orphan False Current Max Timestamp 1695416418 Is SegWit Block True Stripped Size (bytes) 874934 Signature Operations (SigOps) 10015 Block Weight 3998037 Chance per Hash 0.0000000003
******************************************** * CKPool Solo Mining Pool Status * ******************************************** Runtime: 8973061 seconds Last Update: 1695416637 Users: 4192 Workers: 8815 Idle: 6167 Disconnected: 1430
Hashrates: 1-Minute Hashrate: 25P
Mining Stats: Difficulty: 74.8 Accepted Shares: 42732218019927 Rejected Shares: 134929953182 Best Share: 30890747513634 Shares Per Second (1-Minute): 569.0 Shares Per Second (5-Minute): 525.0 Shares Per Second (15-Minute): 521.0 Shares Per Second (1-Hour): 523.0
Next update in 5 minutes...
Still spaces on the Block hunt : https://bitcointalk.org/index.php?topic=5466955.msg62852904#msg62852904
|
|
|
well its free and I want a winner. This allows 30 free picks and should give us a winner. I will open it at block 600 and close it at block 1000. we are at block 241 https://newhedge.io/terminal/bitcoin/difficulty-estimatorLatest Block: 808656 (21 minutes ago) Current Pace: 95.4390% (241 / 252.52 expected, 11.52 behind) Previous Difficulty: 54150142369480 Current Difficulty: 57119871304635.31 Next Difficulty: between 54682813361213 and 56553289468814 Next Difficulty Change: between -4.2666% and -0.9919% Previous Retarget: Yesterday at 4:59 AM (+5.4842%) Next Retarget (earliest): October 3, 2023 at 8:35 AM (in 12d 9h 31m 24s) Next Retarget (latest): October 3, 2023 at 9:02 PM (in 12d 21h 58m 16s) Projected Epoch Length: between 14d 3h 36m 34s and 14d 16h 3m 26s getting ready to setup a retro contest. 01) -4.99 to - 4.50 02) -4.49 to - 4.00 03) -3.99 to - 3.50 04) -3.49 to - 3.00 05) -2.99 to - 2.50 06) -2.49 to - 2.00 07) -1.99 to - 1.50 08 ) -1.49 to -1.00 09) -0.99 to -0.50 10) -0.49 to -0.00 11) 0.01 to 0.50% put your name next to your pick. philipma1957 12) 0.51 to 1.00% 13) 1.01 to 1.50% 14) 1.51 to 2.00% - MagicByt3 15) 2.01 to 2.50% 16) 2.51 to 3.00% 17) 3.01 to 3.50% 18) 3.51 to 4.00% 19) 4.01 to 4.50% 20) 4.51 to 5.00% 21) 5.01 to 5.50% 22) 5.51 to 6.00% 23) 6.01 to 6.50% 24) 6.51 to 7.00% 25) 7.01 to 7.50% 26) 7.51 to 8.00% 27) 8.01 to 8.50% 28) 8.51 to 9.00% 29) 9.01 to 9.50% 30) 9.51 to 10.00% If my pick wins I am giving it to: joker_josue to help support the talk image website. my pick will be 11) + 0.01 to 0.50% my game my rules rule 1. it is free shot to get 0.001 btc rule 2. I get to pick first and if my pick wins I give it to joker_josue rule 3. no newbies must have 10 merits and 90 days on the website. rule 4. no alts giving you a 2x or 3x shot rule 5. you can pick at blocks 600-1000 rule 6. new hedge numbers are used for deciding winner rule 7. if a tie happens due to a round issue I will give 2 prices. this happened 1 time years ago. rule 8. if BTC moons like a mother fucker I will cap prize of 0.001 btc to be 100 usd or less rule 9. my game my rules so if I think you are a sleaze and say do to your answer just accept it rule 10. if I missed something I will rule on it and you will accept the rule. start picking at block 600 Take lucky 14! 14) 1.51 to 2.00% - MagicByt3
|
|
|
Still spaces on the run : 9/10 Spaces Remain Buy in : 0.1 ETH Round Duration : 24 hours Target Hashrate : 20-25ph *depending on rates available at time of launch.
⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣴⣶⣾⣿⣿⣿⣿⣷⣶⣦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀ ⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀ ⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⠟⠿⠿⡿⠀⢰⣿⠁⢈⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀ ⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣤⣄⠀⠀⠀⠈⠉⠀⠸⠿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀ ⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⢠⣶⣶⣤⡀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡆ ⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠼⣿⣿⡿⠃⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣷ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢀⣀⣀⠀⠀⠀⠀⢴⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢿⣿⣿⣿⣿⣿⣿⣿⢿⣿⠁⠀⠀⣼⣿⣿⣿⣦⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡿ ⠸⣿⣿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠛⠛⠿⠟⠋⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⠇ ⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⣤⡄⠀⣀⣀⣀⣀⣠⣾⣿⣿⣿⣿⣿⣿⣿⡟⠀ ⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣄⣰⣿⠁⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀ ⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀ ⠀⠀⠀⠀⠀⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠻⠿⢿⣿⣿⣿⣿⡿⠿⠟⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀
ID |User | TXID --------------------------------------------------------------------------------------------------------- 1 | MagicByt3 | 0x4dc994f6d34bb8648791d3c2ef47cdca60378442e861c1b77041365f5a59a4fe --------------------------------------------------------------------------------------------------------- 2 | --------------------------------------------------------------------------------------------------------- 3 | --------------------------------------------------------------------------------------------------------- 4 | --------------------------------------------------------------------------------------------------------- 5 | --------------------------------------------------------------------------------------------------------- 6 | --------------------------------------------------------------------------------------------------------- 7 | --------------------------------------------------------------------------------------------------------- 8 | --------------------------------------------------------------------------------------------------------- 9 | --------------------------------------------------------------------------------------------------------- 10 | ---------------------------------------------------------------------------------------------------------
How to join the run. 1. Head over to the smart contract > https://etherscan.io/address/0xc51972112f899b9d02a2716e44fa4ccd1f066d55#writeContract2. Select write contract then selected the deposit function. 3. Input the amount 0.1 and your BTC address in the field below. 4. Come post your TXID in the chat.
|
|
|
Hi,
Had 6 miners working fine for 6 months, last night 4 went off and couldnt connect to internet, also wasent showing on router.
Ive now got 5 showing in the router, but only 2 i can log into. The other 3 have IP's but it wont connect to them nor will they connect to the pool. And the 6th i cant get to connect to anything.
Reset router, replaced ethernet switch.
Any ideas?
Cheers
You could try a hard reset on them or a firmware flash if you are unable to get to the webdash. If you can post the models of the miners will be able to give more advice on how to go about this process.
|
|
|
Still spaces on the run : 9/10 Spaces Remain Buy in : 0.1 ETH Round Duration : 24 hours Target Hashrate : 20-25ph *depending on rates available at time of launch.
⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣴⣶⣾⣿⣿⣿⣿⣷⣶⣦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀ ⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀ ⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⠟⠿⠿⡿⠀⢰⣿⠁⢈⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀ ⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣤⣄⠀⠀⠀⠈⠉⠀⠸⠿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀ ⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⢠⣶⣶⣤⡀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡆ ⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠼⣿⣿⡿⠃⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣷ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢀⣀⣀⠀⠀⠀⠀⢴⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢿⣿⣿⣿⣿⣿⣿⣿⢿⣿⠁⠀⠀⣼⣿⣿⣿⣦⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡿ ⠸⣿⣿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠛⠛⠿⠟⠋⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⠇ ⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⣤⡄⠀⣀⣀⣀⣀⣠⣾⣿⣿⣿⣿⣿⣿⣿⡟⠀ ⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣄⣰⣿⠁⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀ ⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀ ⠀⠀⠀⠀⠀⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠻⠿⢿⣿⣿⣿⣿⡿⠿⠟⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀
ID |User | TXID --------------------------------------------------------------------------------------------------------- 1 | MagicByt3 | 0x4dc994f6d34bb8648791d3c2ef47cdca60378442e861c1b77041365f5a59a4fe --------------------------------------------------------------------------------------------------------- 2 | --------------------------------------------------------------------------------------------------------- 3 | --------------------------------------------------------------------------------------------------------- 4 | --------------------------------------------------------------------------------------------------------- 5 | --------------------------------------------------------------------------------------------------------- 6 | --------------------------------------------------------------------------------------------------------- 7 | --------------------------------------------------------------------------------------------------------- 8 | --------------------------------------------------------------------------------------------------------- 9 | --------------------------------------------------------------------------------------------------------- 10 | ---------------------------------------------------------------------------------------------------------
|
|
|
|