Bitcoin Forum
February 16, 2025, 01:06:17 PM *
News: Community Awards voting is open
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 »
1  Alternate cryptocurrencies / Announcements (Altcoins) / derpina, a cryptocurrency tipping bot for Mattermost on: August 16, 2020, 05:13:41 AM
Doing my part for a widespread cryptocurrencies adoption, I proposed to my company to implement a system where any employee can "tip" another one using cryptocurrencies.
The idea being that if you help a coworker, deliver before it's due, impress someone with something you've done, (s)he can tip you with coins, which is less awkward than giving you $1.
When it comes to money exchanges, at least here in France, things are always complicated and there's almost no way to bring innovation in this field. For this reason I made it "fun" and chose DOGE as the tipping asset. Note that this can be changed only by modifying the configuration file.

We use https://mattermost.com as our messaging solution, and the software I wrote uses Mattermost's outgoing webhooks to summon the bot.

So here's the result of a couple of days of golang programming https://gitlab.com/iMil/derpina

Feedback very welcome, feel free to use and modify it as you wish.
2  Bitcoin / Development & Technical Discussion / mnemocheck, checks that your seed phrase matches an address on: June 29, 2020, 07:04:05 AM
I've always had this small doubt that those seed words I wrote down and encrypted might have a typo, or be wrong, and I obviously didn't want them to hang around in clear text or via the network for anything to snoop it.

So I wrote mnemocheck, basically a Dockerfile along with a small bip-utils based python script that derivates the first public address from the mnemonic, it reads them from stdin and the container should be launched with --network none. It knows about Bitcoin, Litecoin, Dogecoin, Dash, Ethereum and XRP (actually what bip-utils supports).
Use it with caution, only pipe on a local, trusted machine, and using encryption tools like GPG, password-store or OpenSSL with the right algorithms.

Here it is https://gitlab.com/iMil/mnemocheck/
3  Bitcoin / Development & Technical Discussion / Re: Goxplorer, a Bitcoin blockchain parser package written in golang on: May 29, 2020, 04:16:50 AM
Version 0.8.1 has landed.

This release's main focus is HTTP mode "real life" usability.  In this mode, it is highly recommended to convert LevelDB databases (block index and chainstate) to a more concurrent-friendly database, Badger https://github.com/dgraph-io/badger. This is done in one step, using goxplorer:
Code:
$ goxplorer -addr mkdb
It takes about 30 minutes to process all of the databases, YMMV depending on your hardware.

From there on, goxplorer will use the Badger databases instead of LevelDB. Of course, it needs to be updated regularly in order to keep in sync with the ongoing blockchain, and you have to take care not to use your node real databases as LevelDB only supports one process at a time, and this could corrupt your running database, leading to a reindexation. Here's a safe way of re-syncing Badger with LevelDB databases using an overlay filesystem https://wiki.archlinux.org/index.php/Overlay_filesystem:
Code:
#!/bin/sh

PATH=${PATH}:${HOME}/bin

DESTDIR=${HOME}/api
BTCDIR=/data/.bitcoin
OVERLAY=${DESTDIR}/overlay
export BTCBLOCKSHOME=${BTCDIR}/blocks
export BTCBLOCKINDEX=${OVERLAY}/bitcoin/blocks/index
export BTCCHAINSTATE=${OVERLAY}/bitcoin/chainstate
export BTCADDRDB=${DESTDIR}/addrdb

sudo umount ${OVERLAY}/bitcoin
rm -rf ${OVERLAY}/upper/*
sudo mount ${OVERLAY}/bitcoin
leveldbctl -d ${BTCBLOCKINDEX} i
leveldbctl -d ${BTCCHAINSTATE} i

curl http://localhost:7554/mkdb/
leveldbctl https://github.com/yuuichi-fujioka/go-leveldbctl is a very handy tool I've contributed to in order to make it hexadecimal-friendly.

This script can be for example coupled with a filesystem event detection tool like inotify-wait in order to be launched on every blockchain change, and it can be safely called while goxporer is serving HTTP requests.

* Homepage: https://imil.net/goxplorer/
* Releases: https://gitlab.com/iMil/goxplorer/-/releases
* Source code: https://gitlab.com/iMil/goxplorer
4  Bitcoin / Development & Technical Discussion / Re: Goxplorer, a Bitcoin blockchain parser package written in golang on: May 17, 2020, 04:45:54 PM
0.6.0 is out, and with it, as promised, chainstate / UTXO support.

It is now possible to generate an address database, and use it for fast address search (UTXO only), either on the command line or via the HTTP REST/JSON server:

Code:
$ ./goxplorer -addr db:addrdb:1BVxyPYXkV5tFKWMnVoeQgUZEzkrAsDUVB|jq '.[0]'
{
  "txid": "b5ec0c758e34ff541d20cf7f43b43a748293b7e8262b845f72708323a96f1e00",
  "height": 492634,
  "nsize": 0,
  "address": "1BVxyPYXkV5tFKWMnVoeQgUZEzkrAsDUVB",
  "amount": 600
}

Note that you can search for either a full or a partial address

Code:
$ ./goxplorer -addr db:addrdb:1BVxyPYXkV5tF|jq '.[0]'
{
  "txid": "b5ec0c758e34ff541d20cf7f43b43a748293b7e8262b845f72708323a96f1e00",
  "height": 492634,
  "nsize": 0,
  "address": "1BVxyPYXkV5tFKWMnVoeQgUZEzkrAsDUVB",
  "amount": 600
}

In the same manner, you can search for a TXID:

Code:
$ ./goxplorer -addr txid:3f4ef2469c6dcb8f3255ca444d237a73c8df7f20cf6d5c3b17f59c34934d1b00|jq '.[0]'
{
  "txid": "3f4ef2469c6dcb8f3255ca444d237a73c8df7f20cf6d5c3b17f59c34934d1b00",
  "height": 425174,
  "nsize": 0,
  "address": "1FhpzVpBdmN6iLdEnzffFhBo1dgXJ5W9Ec",
  "amount": 300
}
Homepage: https://imil.net/goxplorer/
Release: https://gitlab.com/iMil/goxplorer/-/releases
Sources: https://gitlab.com/iMil/goxplorer

Edit: release 0.6.1
5  Bitcoin / Development & Technical Discussion / Re: Goxplorer, a Bitcoin blockchain parser package written in golang on: May 16, 2020, 08:42:30 AM
1. Using it, can I parse all addresses with a positive balance from the entire blockchain to a text file?
2. Can I check the balances of a large list of addresses from a text file and write them to another text file?

Regarding the first point, you might want to have a look as goxplorer chainstate branch https://gitlab.com/iMil/goxplorer/-/tree/chainstate
I've just pushed a working version of what I hinted, you can now make a database of all addresses with a positive balance (better said, UTXOs), but it's not yet documented. The fastest way of getting this done is to 1st create the LevelDB database (can take some time depending on your hardware):

$ goxplorer -addr mkdb:anameyoulike

Then if you want to extract them to a plain text file, you can use https://github.com/yuuichi-fujioka/go-leveldbctl this way:

$ leveldbctl --dbfile=anameyoulike k > addresses.txt

The second point is on its way.


I've added a print function to ease this process in the chainstate branch. Export chainstate location and run goxplorer with the -addr print flag:

Code:
$ export BTCCHAINSTATE=chainstate # use a copy, not the original chainstate database!
$ ./goxplorer -addr print
This will output every UTXO in a JSON dict to be taken individually, an array would be too big.

Example output:
Code:
{
  "txid": "57f50996a619a65979a8adf64396e76ed26c2c643492cbb2b35414246b040f00",
  "height": 616335,
  "nsize": 0,
  "address": "19iLbtVWjer23uWR4tdw6WdxvMDZ8CeUxz",
  "amount": 133097
}
{
  "txid": "57f50996a619a65979a8adf64396e76ed26c2c643492cbb2b35414246b040f00",
  "height": 616335,
  "nsize": 0,
  "address": "1N1YgwAFgEuTZmtKaAskhQRK8Q6k9iuzKU",
  "amount": 57914
}
...

The chainstate branch is actually capable of more useful actions but I'm still working on polishing and documenting them.
6  Bitcoin / Development & Technical Discussion / Re: Goxplorer, a Bitcoin blockchain parser package written in golang on: May 12, 2020, 03:18:50 PM
Release 0.5.0 is out!

Goxplorer is now able to explore blocks/index LevelDB database. This is useful when debugging and learning blockchain structure, i.e.:
Code:
$ ./goxplorer -b 1845 -ldb file
{
  "nblocks": 127,
  "nsize": 133112994,
  "nundosize": 18090258,
  "nheightfirst": 600753,
  "nheightlast": 601727,
  "ntimefirst": 1571860166,
  "ntimeLast": 1572487584
}
More to come in this direction as mentioned in the previous post, it should open the way to faster addresses search.

I also added a toy callback, a very naive bruteforce module to test blocks against dictionary files.

Documentation/homepage: https://imil.net/goxplorer/
Release: https://gitlab.com/iMil/goxplorer/-/releases/0.5.0
Source code: https://gitlab.com/iMil/goxplorer
7  Bitcoin / Development & Technical Discussion / Re: Goxplorer, a Bitcoin blockchain parser package written in golang on: May 12, 2020, 02:31:24 PM
1. Using it, can I parse all addresses with a positive balance from the entire blockchain to a text file?
2. Can I check the balances of a large list of addresses from a text file and write them to another text file?

1. At the moment, this would take an enormous amount of time, but I am working on including chainstate support, which should help achieve something like this.
2. Same answer.
8  Bitcoin / Development & Technical Discussion / Re: Goxplorer, a Bitcoin blockchain parser package written in golang on: April 30, 2020, 05:32:59 AM
An update, only to announce release 0.3.0: Goxplorer can now be started as a REST HTTP server and thus be a backend for any type of frontend with no other dependency than the blockchain itself.

Enjoy!
9  Bitcoin / Development & Technical Discussion / Re: Goxplorer, a Bitcoin blockchain parser package written in golang on: December 04, 2019, 07:34:11 PM
interesting. nice job!

Thanks a lot! And It's not its final form, I still have a couple of nice features in mind Wink
10  Bitcoin / Development & Technical Discussion / Re: Goxplorer, a Bitcoin blockchain parser package written in golang on: December 04, 2019, 06:51:11 PM
If you make it Multi Threaded, you can call it MtGoxplorer :-)

Oh my. Why didn't I... and it actually *is* multithreaded!  Grin
11  Bitcoin / Development & Technical Discussion / Re: Goxplorer, a Bitcoin blockchain parser package written in golang on: December 03, 2019, 09:56:13 AM
So here it is, latest version of Goxplorer has a couple of new features to help explore and discover Bitcoin's blockchain.

On the non-cosmetic side, apart from bugfixes, Goxplorer now launches block de-serialization using go routines, this simply makes a x3 performances increase.

Now on the features side:

-s permits to specify a starting block (relative, starting at 1, 0 means whole file, not block height-based)
-n can be used to only show a number of blocks
-x computes the block hash
-l uses LevelDB Block Index Record to start at a certain block hash, blkXXXXX.dat file is automatically found and loaded
-e uses LevelDB Block Index Record to start at a certain block height, blkXXXXX.dat file is automatically found and loaded
-d uses LevelDB File Information Record to load a block file from a certain date, blkXXXXX.dat file is automatically found and loaded
-tx loads and de-serialize a single transaction

"Real-life" examples are available on the project's GitLab https://gitlab.com/iMil/goxplorer

Bonus track, I couldn't find a working example of Bitcoin's LevelDB usage in golang, so I wrote blockchain/leveldb.go from scratch, it might help some Go developers.

Comments and ideas are very welcome.

Edit: added -e
Edit2: added -d
12  Bitcoin / Development & Technical Discussion / Re: Goxplorer, a Bitcoin blockchain parser package written in golang on: November 24, 2019, 06:15:55 PM
Very nice release, a lot of ppl here were looking for block parsers  Smiley

Not sure if sarcastic  Grin

Thanks anyway, and I have many things cooking as for goxplorer future, notably a huge speed boost using both goroutines and block index. Latest commits fixed various bugs and adds customizable helper functions.
13  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: November 11, 2019, 07:16:56 PM
Has anyone heard from Jean_Luc at all?

FWIW I sent him an email on November 3 to let him know about the Dockerfile and thank him for his work and he never replied... I just assumed he was busy.
14  Bitcoin / Development & Technical Discussion / Goxplorer, a Bitcoin blockchain parser package written in golang on: November 11, 2019, 02:56:16 PM
Hi,

A couple of weeks ago I started a toy project in order to dig into blocks structure, and one thing leading to another, it evolved into a pretty usable block file parser Go package.
I am aware of btcsuite, but TBH I found its documentation really hard to read and the project way too large for the simple task I wanted to achieve, so I took the opportunity.

So here it is, I present you Goxplorer (pun intended) https://gitlab.com/iMil/goxplorer, it supports pretty much all locking mechanisms including natives and P2SH embedded SegWit ones. It has the ability to add callbacks for every parsed transaction and/or block, which makes it fun to play with.

It still needs more documentation and testing, but I thought you might find it useful.

Hope you like it,

Cheers,

iMil
15  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: November 11, 2019, 02:41:40 PM
I would like to present a new bitcoin prefix address finder called VanitySearch. It is very similar to Vanitygen.

Thanks a lot for this Jean-Luc, great software. And FWIW, I wrote a Dockerfile so anyone can easily and securely run it. It can be found here https://gitlab.com/iMil/vanitysearch-docker
16  Alternate cryptocurrencies / Tokens (Altcoins) / Re: [ANN] eBTC | The New (ERC20) Bitcoin on: October 05, 2017, 04:33:00 PM
Can rise to 100$  in 2018 summer ?

Maybe , $100+ is possible in next year.

Guys, I hate to break it but... look at the picture upper right of their Reddit page. Think.

?

/r/eBTC/ banner, top right, pepe.
17  Alternate cryptocurrencies / Tokens (Altcoins) / Re: [ANN] eBTC | The New (ERC20) Bitcoin on: October 05, 2017, 04:26:44 PM
Can rise to 100$  in 2018 summer ?

Maybe , $100+ is possible in next year.

Guys, I hate to break it but... look at the picture upper right of their Reddit page. Think.
18  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] Signatum - New Algorithm - Fair Launch - No Premine on: September 20, 2017, 08:27:50 AM
Devs are working like crazy on this and as soon as they reach next step in their roadmap, price of SIGT will go 10x up, or even more.

Are they? because if they are it doesn't show up much on their GitHub repository: https://github.com/signatumd
19  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] Signatum - New Algorithm - Fair Launch - No Premine - Cryptopia on: August 05, 2017, 04:34:10 PM
Still no miner for older AMD GPU cards?  Angry

I have successfully built https://github.com/tpruvot/sgminer for AMD R9, works with my 280X and 290X, but the hashrate is very poor, 2 to 3MH/s by card. They actually are not used at their full power as --odgc and --odgt shows, even with an intensity of 23 (crashes at 25). Any advice welcome...


Yes, please if you can.

Well I already can tel you how to build it, tell me if you also have poor performances:

This is for Debian, which I use. I will assume you already have the AMD SDK installed in /opt

Code:
$ apt-get install libcurl4-openssl-dev pkg-config libtool libncurses5-dev
$ git clone https://github.com/signatumd/gpuminer-source.git
$ git submodule init
$ git submodule update
$ cd submodules
$ git clone https://github.com/akheron/jansson.git
$ find . -name ".deps" -delete
$ cd ..
$ autoreconf -i
$ CFLAGS="-Os -Wall -march=native -I/opt/AMDAPPSDK-2.9-1/include" LDFLAGS="-L/opt/AMDAPPSDK-2.9-1/lib/x86_64" ./configure --disable-adl --disable-git-version
$ make clean
$ make
$ make install

At this point you'll have sgminer installed in /usr/local/bin and you can start it with:

Code:
/usr/local/bin/sgminer -k skunkhash -o stratum+tcp://sigt.pool.mn:8732 -u foo.bar -p baz -I 20,20,20

Of course you'll have to modify the values to match your worker and pool.

Please tell me what hashrate you get!
20  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] Signatum - New Algorithm - Fair Launch - No Premine - Cryptopia on: August 05, 2017, 04:23:25 PM
Guys, just try CWI miner , its really great and it faster.

No Linux version yet Sad
Pages: [1] 2 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!