Bitcoin Forum
May 25, 2024, 08:23:38 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ... 61 »
41  Bitcoin / Mining speculation / Re: 2023 Diff thread now opened. on: December 18, 2023, 02:03:47 PM
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.


42  Bitcoin / Development & Technical Discussion / Re: Could the BIP39 word list be completely replaced? on: December 18, 2023, 09:35:40 AM
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_poetry

Since 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.

43  Bitcoin / Hardware / Re: ASIC Miner Chip sizes on: December 18, 2023, 09:26:15 AM
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.html

The 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.

44  Economy / Digital goods / Re: ⭐⭐⭐⭐⭐ OMEGLE MESSAGING BOT - SIMPLE AND EFFECTIVE - SMEDIABOTS.COM on: December 18, 2023, 05:53:08 AM
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...
45  Bitcoin / Pools / Re: [∞ YH] solo.ckpool.org 2% fee solo mining 279 blocks solved! on: December 16, 2023, 06:55:09 AM
Wish me luck  Smiley

Code:
{
 "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,
46  Bitcoin / Hardware / Re: Any one in UK use bitfufu on: December 13, 2023, 09:58:15 AM
100% scam!

Don't waste your time.
47  Bitcoin / Development & Technical Discussion / Re: The mystery behind the point x=1, y=2 on elliptic curves on: December 13, 2023, 04:27:31 AM
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 k
Your 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.

Code:

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}")


Code:
Resulting Point: (14474011154664524427946373126085988481658748083205070504932198000988604333959, 72704176545891799367084825159033606358294843509675418738294063466241294077822)


48  Economy / Collectibles / Re: [SALE] 1HODLCLUB FULL AND NEW MOON PHASES 2-Coins set [Only 1 left] on: December 13, 2023, 03:16:12 AM
Outstanding as always.
49  Bitcoin / Development & Technical Discussion / Re: Using Bitcoin as a trusted clock? on: December 13, 2023, 02:38:55 AM
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!
50  Bitcoin / Development & Technical Discussion / Re: The mystery behind the point x=1, y=2 on elliptic curves on: November 30, 2023, 05:32:53 AM
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:
Code:

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.



51  Bitcoin / Pools / Re: [∞ YH] solo.ckpool.org 2% fee solo mining 279 blocks solved! on: November 30, 2023, 04:38:09 AM
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.txns

This 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!

Code:
********************************************
*        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  Wink


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!  Smiley
52  Alternate cryptocurrencies / Mining (Altcoins) / Re: MagicHash - Group Based SOLO Mining - on: October 25, 2023, 05:52:31 PM
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
53  Bitcoin / Pools / Re: [∞ YH] solo.ckpool.org 2% fee solo mining 277 blocks solved! on: October 25, 2023, 05:50:03 PM
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.
54  Alternate cryptocurrencies / Mining (Altcoins) / Re: Goerli Mining on: October 25, 2023, 04:54:04 PM
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
55  Alternate cryptocurrencies / Mining (Altcoins) / Re: MagicHash - Group Based SOLO Mining - on: September 24, 2023, 03:30:50 PM
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.


Code:



  ⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣴⣶⣾⣿⣿⣿⣿⣷⣶⣦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀
   ⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀
   ⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀
   ⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⠟⠿⠿⡿⠀⢰⣿⠁⢈⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀
   ⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣤⣄⠀⠀⠀⠈⠉⠀⠸⠿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀
   ⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⢠⣶⣶⣤⡀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡆
   ⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠼⣿⣿⡿⠃⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣷
   ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢀⣀⣀⠀⠀⠀⠀⢴⣿⣿⣿⣿⣿⣿⣿⣿⣿
   ⢿⣿⣿⣿⣿⣿⣿⣿⢿⣿⠁⠀⠀⣼⣿⣿⣿⣦⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡿
   ⠸⣿⣿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠛⠛⠿⠟⠋⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⠇
   ⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⣤⡄⠀⣀⣀⣀⣀⣠⣾⣿⣿⣿⣿⣿⣿⣿⡟⠀
   ⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣄⣰⣿⠁⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀
    ⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀
   ⠀⠀⠀⠀⠀⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀
   ⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠻⠿⢿⣿⣿⣿⣿⡿⠿⠟⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀



How to join the run.

1.  Head over to the smart contract >   https://etherscan.io/address/0xc51972112f899b9d02a2716e44fa4ccd1f066d55#writeContract
2. 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 |
---------------------------------------------------------------------------------------------------------


56  Bitcoin / Pools / Re: [∞ YH] solo.ckpool.org 2% fee solo mining 277 blocks solved! on: September 22, 2023, 09:08:15 PM
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!  Smiley

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"

# 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 :

Code:

********************************************
*   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
57  Bitcoin / Mining speculation / Re: 2023 Diff thread now opened. on: September 21, 2023, 08:19:03 PM
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

Quote
https://newhedge.io/terminal/bitcoin/difficulty-estimator

Latest 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
58  Alternate cryptocurrencies / Mining (Altcoins) / Re: MagicHash - Group Based SOLO Mining - on: September 20, 2023, 03:34:02 PM
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.


Code:



  ⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣴⣶⣾⣿⣿⣿⣿⣷⣶⣦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀
   ⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀
   ⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀
   ⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⠟⠿⠿⡿⠀⢰⣿⠁⢈⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀
   ⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣤⣄⠀⠀⠀⠈⠉⠀⠸⠿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀
   ⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⢠⣶⣶⣤⡀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡆
   ⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠼⣿⣿⡿⠃⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣷
   ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢀⣀⣀⠀⠀⠀⠀⢴⣿⣿⣿⣿⣿⣿⣿⣿⣿
   ⢿⣿⣿⣿⣿⣿⣿⣿⢿⣿⠁⠀⠀⣼⣿⣿⣿⣦⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡿
   ⠸⣿⣿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠛⠛⠿⠟⠋⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⠇
   ⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⣤⡄⠀⣀⣀⣀⣀⣠⣾⣿⣿⣿⣿⣿⣿⣿⡟⠀
   ⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣄⣰⣿⠁⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀
    ⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀
   ⠀⠀⠀⠀⠀⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀
   ⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠻⠿⢿⣿⣿⣿⣿⡿⠿⠟⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀






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#writeContract
2. 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.


59  Bitcoin / Mining / Re: Network issue on: September 19, 2023, 12:34:57 PM
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.
60  Alternate cryptocurrencies / Mining (Altcoins) / Re: MagicHash - Group Based SOLO Mining - on: September 19, 2023, 02:43:35 AM
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.


Code:



  ⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣴⣶⣾⣿⣿⣿⣿⣷⣶⣦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀
   ⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀
   ⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀
   ⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⠟⠿⠿⡿⠀⢰⣿⠁⢈⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀
   ⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣤⣄⠀⠀⠀⠈⠉⠀⠸⠿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀
   ⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⢠⣶⣶⣤⡀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡆
   ⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠼⣿⣿⡿⠃⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣷
   ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢀⣀⣀⠀⠀⠀⠀⢴⣿⣿⣿⣿⣿⣿⣿⣿⣿
   ⢿⣿⣿⣿⣿⣿⣿⣿⢿⣿⠁⠀⠀⣼⣿⣿⣿⣦⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⡿
   ⠸⣿⣿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠛⠛⠿⠟⠋⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⠇
   ⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⣤⡄⠀⣀⣀⣀⣀⣠⣾⣿⣿⣿⣿⣿⣿⣿⡟⠀
   ⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣄⣰⣿⠁⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀
    ⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀
   ⠀⠀⠀⠀⠀⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀
   ⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠻⠿⢿⣿⣿⣿⣿⡿⠿⠟⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀






ID |User   | TXID
---------------------------------------------------------------------------------------------------------
1 | MagicByt3    | 0x4dc994f6d34bb8648791d3c2ef47cdca60378442e861c1b77041365f5a59a4fe
---------------------------------------------------------------------------------------------------------
2 |
---------------------------------------------------------------------------------------------------------
3 |
---------------------------------------------------------------------------------------------------------
4 |
---------------------------------------------------------------------------------------------------------
5 |
---------------------------------------------------------------------------------------------------------
6 |
---------------------------------------------------------------------------------------------------------
7 |
---------------------------------------------------------------------------------------------------------
8 |
---------------------------------------------------------------------------------------------------------
9 |
---------------------------------------------------------------------------------------------------------
10 |
---------------------------------------------------------------------------------------------------------

Pages: « 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ... 61 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!