Jump to content

Willkommen Gast

Navigation

Links

Als Gast hast du nur eingeschränkten Zugriff!


Sign In 

Create Account

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.
 

   

Photo

[Go] Script > Multithreading einbauen

- - - - -

  • Please log in to reply
1 reply to this topic

#1
Payload

Payload

    31er

  • Banned
  • PipPipPipPipPip
  • Likes
    3
  • 74 posts
  • 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
    123
  • 177 posts
  • 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
}

Edited by sup3ria, 28 November 2017 - 19:51 Uhr.

  • Payload likes this

Thanked by 1 Member:
Payload


user(s) are reading this topic

members, guests, anonymous users


This topic has been visited by 24 user(s)


    3eyes, Ch!ller, cubik, dev-0, 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.