Zum Inhalt wechseln

Als Gast hast du nur eingeschränkten Zugriff!


Anmelden 

Benutzerkonto erstellen

Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.

  • Antworte auf Themen oder erstelle deine eigenen.
  • Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
  • Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
  • Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
 

   

Foto

[Go] Script > Multithreading einbauen

- - - - -

  • Bitte melde dich an um zu Antworten
Eine Antwort in diesem Thema

#1
Payload

Payload

    31er

  • Banned
  • PIPPIPPIPPIPPIP
  • Likes
    4
  • 74 Beiträge
  • 154 Bedankt

Ich habe hier ein Script was ich gerne mit Multithreading nutzen würde.

Da weder von Go noch von Multithreading Ahnung habe würde ich mich freuen wenn mir jemand helfen kann. 

 

Script:

package main

import (
	"fmt"
	"math/big"

	"github.com/btcsuite/btcutil"
	"github.com/btcsuite/btcd/btcec"
	"github.com/btcsuite/btcd/chaincfg"
)

func main() {
	// Print header
	fmt.Printf("%64s %34s %34s\n", "Private", "Public", "Public Compressed")

	// Initialise big numbers with small numbers
	count, one := big.NewInt(0), big.NewInt(1)

	// Create a slice to pad our count to 32 bytes
	padded := make([]byte, 32)

	// Loop forever because we're never going to hit the end anyway
	for {
		// Increment our counter
		count.Add(count, one)

		// Copy count value's bytes to padded slice
		copy(padded[32-len(count.Bytes()):], count.Bytes())

		// Get public key
		_, public := btcec.PrivKeyFromBytes(btcec.S256(), padded)

		// Get compressed and uncompressed addresses
		caddr, _ := btcutil.NewAddressPubKey(public.SerializeCompressed(), &chaincfg.MainNetParams)
		uaddr, _ := btcutil.NewAddressPubKey(public.SerializeUncompressed(), &chaincfg.MainNetParams)

		// Print keys
		fmt.Printf("%x %34s %34s\n", padded, uaddr.EncodeAddress(), caddr.EncodeAddress())
	}
}

Ich weiß nicht in wie weit das Zeit in Anspruch nimmt, notfalls würde ich dafür auch ein paar Euronen springen lassen. 


Es gibt tausendundeinen Grund, warum ein Mensch bestimmte Einzelheiten seiner Privatsphäre nicht offenbaren will, und es besteht nicht die geringste Pflicht, dies auch noch aktzeptieren zu müssen.


#2
sup3ria

sup3ria

    Hacker

  • Premium Member
  • Likes
    125
  • 177 Beiträge
  • 50 Bedankt

Wenn man die Schleife einfach in eine Funktion umlagert und dann 5000 mal als Goroutine startet, komme Ich etwa auf ~85% CPU Usage.

Falls du auf 95% kommen willst kann man noch einige Dinge tun wie z.B. nicht auf die Console schreiben, GC reduzieren und Datentypen verändern. 

package main

import (
	"fmt"
	"math/big"

	"github.com/btcsuite/btcutil"
	"github.com/btcsuite/btcd/btcec"
	"github.com/btcsuite/btcd/chaincfg"
	"sync"
)

var wg sync.WaitGroup

func run(){
	// Initialise big numbers with small numbers
	count, one := big.NewInt(0), big.NewInt(1)
	// Create a slice to pad our count to 32 bytes
	padded := make([]byte, 32)
	// Loop forever because we're never going to hit the end anyway
	for {
		// Increment our counter
		count.Add(count, one)

		// Copy count value's bytes to padded slice
		copy(padded[32-len(count.Bytes()):], count.Bytes())

		// Get public key
		_, public := btcec.PrivKeyFromBytes(btcec.S256(), padded)

		// Get compressed and uncompressed addresses
		caddr, _ := btcutil.NewAddressPubKey(public.SerializeCompressed(), &chaincfg.MainNetParams)
		uaddr, _ := btcutil.NewAddressPubKey(public.SerializeUncompressed(), &chaincfg.MainNetParams)

		// Print keys
		fmt.Printf("%x %34s %34s\n", padded, uaddr.EncodeAddress(), caddr.EncodeAddress())
	}
}
func main() {
	// Print header
	fmt.Printf("%64s %34s %34s\n", "Private", "Public", "Public Compressed")
	//start goroutines
	for range [5000]struct{} {}{ //replace 5000 with X number
		wg.Add(1)
		go run()
	}
	wg.Wait()//block forever
}

Bearbeitet von sup3ria, 28 November 2017 - 19:51 Uhr.

  • Payload gefällt das

Thanked by 1 Member:
Payload


  Thema Forum Themenstarter Statistik Letzter Beitrag

Dieses Thema wurde von 26 Mitglied(ern) gelesen


    3eyes, Bot4ng, Ch!ller, cubik, dev-0, fukoff, funstyler, hacked, Hansiberg, isi, kiwitone, Klaus, Lautabach, leonalexkraus, n1nja, o0o, PadX18, Payload, Psykoon303, Rogerlopensio, s3ff, Snapfish, sup3ria, w0tan, xVirtu, Zerobyte
Die besten Hacking Tools zum downloaden : Released, Leaked, Cracked. Größte deutschsprachige Hacker Sammlung.