Bitcoin Forum
July 23, 2025, 02:27:03 AM *
News: Latest Bitcoin Core release: 29.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Distributed Cyclone (only CPU again)  (Read 193 times)
FrozenThroneGuy (OP)
Jr. Member
*
Offline Offline

Activity: 53
Merit: 43


View Profile
March 21, 2025, 09:02:34 PM
 #1

Hy, guys!
New version is arrived:)
Distributed Cyclone is a collaborative platform for tackling Satoshi puzzles. Instead of relying solely on brute force or expensive hardware, this project harnesses the power of distributed computing by dividing the workload among many participants.
Approaches to Solving Satoshi Puzzles
There are at least four strategies to approach the challenge:
Develop New Algorithms
Create innovative algorithms for computing public keys on the Secp256k1 curve. For example, significantly accelerating the group modular inversion algorithm could provide a breakthrough.
Optimize Existing Implementations
Enhance current solutions with low-level assembly optimizations. Note: I experimented with this approach and only achieved up to a 5% speed boost.
Utilize Ready-Made Software with GPU Resources
Deploy existing software solutions, investing tens or even hundreds of thousands of dollars in GPU rental or purchase.
Form a Collaborative Network
Gather a community of thousands to collectively work on the problem.
Distributed Cyclone follows the fourth approach, enabling a dedicated group to solve a specific puzzle through coordinated effort.
Github: https://github.com/Dookoo2/Distributed-Cyclone
POD5
Member
**
Offline Offline

Activity: 323
Merit: 10

Keep smiling if you're loosing!


View Profile
March 22, 2025, 10:24:31 AM
 #2

It seems to be working. Communication between Cyclone and Server well succeeded.
Could you please add THREADS?

bc1qtmtmhzp54yvkz7asnqxc9j7ls6y5g93hg08msa
FrozenThroneGuy (OP)
Jr. Member
*
Offline Offline

Activity: 53
Merit: 43


View Profile
March 22, 2025, 11:17:13 AM
 #3

It seems to be working. Communication between Cyclone and Server well succeeded.
Could you please add THREADS?
If I understand you correctly, you mean adding random mode? It has done already on SRV side. When client send to the server "get range", SRV sends to client a random segment of the whole range to compute.
On the client side given range divides to the subranges equity to the number of threads on the your own CPU. Each thread starts computing with a given subrange
POD5
Member
**
Offline Offline

Activity: 323
Merit: 10

Keep smiling if you're loosing!


View Profile
March 22, 2025, 11:23:46 AM
 #4

No I mean it uses all the available threads and this might overload de computer

bc1qtmtmhzp54yvkz7asnqxc9j7ls6y5g93hg08msa
FrozenThroneGuy (OP)
Jr. Member
*
Offline Offline

Activity: 53
Merit: 43


View Profile
March 22, 2025, 11:30:51 AM
 #5

No I mean it uses all the available threads and this might overload de computer
Ok, it's easy. I will do it today or tomorrow.
alsaken19
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
March 25, 2025, 07:57:07 AM
 #6

Hi

AMD Ryzen 9 8945HS

Im in

i just got i installed and run everting is soothe

how long do you think it will take to be solved

================= SRV COMMUNICATION =================
SRV ip-address       : 91.84.105.101
SRV port             : 12345lished
Connection status    : Established ==================
================= WORK IN PROGRESS ==================
Target Address: 1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ
CPU Threads   : 16.28
Mkeys/s       : 64.58566077
Total Checked : 82356979986
Elapsed Time  : 00:21:15
Progress      : 0.09 %
Total ranges  : 1
Denevron
Newbie
*
Offline Offline

Activity: 111
Merit: 0


View Profile
March 26, 2025, 12:06:23 AM
 #7

Hi

AMD Ryzen 9 8945HS

Im in

i just got i installed and run everting is soothe

how long do you think it will take to be solved

================= SRV COMMUNICATION =================
SRV ip-address       : 91.84.105.101
SRV port             : 12345lished
Connection status    : Established ==================
================= WORK IN PROGRESS ==================
Target Address: 1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ
CPU Threads   : 16.28
Mkeys/s       : 64.58566077
Total Checked : 82356979986
Elapsed Time  : 00:21:15
Progress      : 0.09 %
Total ranges  : 1


If you are lucky, one minute may be enough, but it is unlikely Grin
alsaken19
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
March 26, 2025, 12:31:13 AM
 #8

Hi

AMD Ryzen 9 8945HS

Im in

i just got i installed and run everting is soothe

how long do you think it will take to be solved

================= SRV COMMUNICATION =================
SRV ip-address       : 91.84.105.101
SRV port             : 12345lished
Connection status    : Established ==================
================= WORK IN PROGRESS ==================
Target Address: 1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ
CPU Threads   : 16.28
Mkeys/s       : 64.58566077
Total Checked : 82356979986
Elapsed Time  : 00:21:15
Progress      : 0.09 %
Total ranges  : 1


If you are lucky, one minute may be enough, but it is unlikely Grin



Sadly i got disconnected had to start again XD
POD5
Member
**
Offline Offline

Activity: 323
Merit: 10

Keep smiling if you're loosing!


View Profile
March 27, 2025, 06:39:23 PM
Last edit: March 27, 2025, 06:51:14 PM by POD5
 #9

And here you go. Here is the complement code to restrict threads to -t <n> instead of using them all.  Grin

Code:
int main(int argc, char* argv[]) {
    // Initialize with all available CPUs (KEEP THIS)
    int numCPUs = omp_get_num_procs();

    // Parse command-line arguments
    for (int i = 1; i < argc; i++) {
        if (!std::strcmp(argv[i], "-i") && i + 1 < argc) g_serverIp = argv[++i];
        else if (!std::strcmp(argv[i], "-p") && i + 1 < argc) g_serverPort = std::stoi(argv[++i]);
        else if (!std::strcmp(argv[i], "-t") && i + 1 < argc) numCPUs = std::stoi(argv[++i]);
        else {
            std::cerr << "Usage: " << argv[0] << " -i <IP> -p <port> [-t <threads>]\n";
            return 1;
        }
    }

    // Validate thread count (ADD THIS)
    if (numCPUs <= 0 || numCPUs > omp_get_num_procs()) {
        std::cerr << "Warning: Invalid thread count (" << numCPUs
                  << "). Using all CPUs (" << omp_get_num_procs() << ").\n";
        numCPUs = omp_get_num_procs();
    }

    if (g_serverIp.empty() || g_serverPort == 0) {
        std::cerr << "Usage: " << argv[0] << " -i <IP> -p <port> [-t <threads>]\n";
        return 1;
    }

    int sock = socket(AF_INET, SOCK_STREAM, 0);
    if (sock < 0) {
        perror("socket");
        return 1;
    }
    sockaddr_in srv;
    srv.sin_family = AF_INET;
    srv.sin_port = htons(g_serverPort);
    if (inet_pton(AF_INET, g_serverIp.c_str(), &srv.sin_addr) <= 0) {
        std::cerr << "Invalid IP address\n";
        return 1;
    }
    if (connect(sock, (sockaddr*)&srv, sizeof(srv)) < 0) {
        perror("connect");
        return 1;
    }
    g_sock = sock;
    signal(SIGINT, handleSignal);
    signal(SIGTERM, handleSignal);
    signal(SIGHUP, handleSignal);
    std::thread alv(aliveThreadFunc);
    alv.detach();
    {
        std::string cmd = "get target\n";
        if (send(sock, cmd.c_str(), cmd.size(), 0) < 0) {
            close(sock);
            return 1;
        }
        std::string resp = recvLine(sock);
        if (resp.empty()) {
            close(sock);
            return 1;
        }
        g_targetAddress = resp;
    }
    std::vector<uint8_t> targetHash160;
    try {
        targetHash160 = P2PKHDecoder::getHash160(g_targetAddress);
        if (targetHash160.size() != 20) throw std::invalid_argument("Bad hash160 length");
    } catch (...) {
        close(sock);
        return 1;
    }
    if (!g_timeInitialized) {
        g_timeStart = std::chrono::high_resolution_clock::now();
        g_timeInitialized = true;
    }
    //int numCPUs = omp_get_num_procs();

bc1qtmtmhzp54yvkz7asnqxc9j7ls6y5g93hg08msa
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!