Giter Club home page Giter Club logo

electrum's Introduction

BTG Core (Bitcoin Gold Core)

Build Status

BTG Core (aka Bitcoin Gold Core, BTCGPU) is the original BTG client and it builds the backbone of the network. It is based on Bitcoin Core. BTG began as a fork of Bitcoin after block height 491406 on Tue, 24 Oct 2017 01:17:35 GMT and began being mined as a separate chain at block height 491407 on Sun, 12 Nov 2017 13:34:01 GMT.

This project began out of the desire to create a variant of Bitcoin that is more decentralized by using an ASIC-resistant Proof of Work algorithm, removing barriers to entry for new miners around the world and reducing the concentration of power in the hands of massive-scale mining operations.

BTG preserves and implements Bitcoin features such as SegWit, which enables advanced scaling technologies like Lightning Network. Significant differences at launch time included:

  • ASIC-resistant GPU-minable PoW algorithm (Equihash)
  • Per-block difficulty adjustment algorithm
  • Replay protection (SIGHASH_FORK_ID)
  • Unique wallet addresses (prefixes of G and A, to avoid user confusion with Bitcoin)

Although BTG was bootstrapped on 12 Nov to create an entirely new network, it contains the entire Bitcoin blockchain until block 491406. This means BTG was a full fork at that time, with all Bitcoin transaction history since 2009. Any Bitcoin wallet address which held Bitcoin in BTC block 491406 before the fork held an equal number of Bitcoin Gold in BTG block 491407 after the fork, and those funds are accessible through the original private keys.

Releases

This is the staging tree of BTG. For release version, please switch to 0.17 branch or release page.

To compile from source, please check the build documentations under doc.

Documentation

Responsible Disclosure

At BTG, we consider the security of our systems a top priority. But no matter how much effort we put into system security, there can still be vulnerabilities present.

If you discover a vulnerability, we would like to know about it so we can take steps to address it as quickly as possible. We would like to ask you to help us better protect our users and our systems.

Please check our Responsible Disclosure page for more details.

Links

electrum's People

Contributors

admin-slush avatar akshayaurora avatar asfin avatar bauerj avatar blinkystitt avatar chrisglass avatar ctrlcctrlv avatar dabura667 avatar darrindaigle avatar ecdsa avatar fluffypony avatar genjix avatar h4x3rotab avatar jhoenicke avatar jimboman77 avatar jonathancross avatar justintarthur avatar lzsaver avatar m0mchil avatar mkramlich avatar neocogent avatar ovidiusoft avatar rofl0r avatar romanz avatar saleemrashid avatar shsmith avatar sombernight avatar stefaang avatar wilsonmeier avatar wozz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

electrum's Issues

no electrum servers

None of the servers hardcoded in master branch are reachable.

There are no servers hardcoded in btgimpl branch.

Anyone aware of a working electrum server for BTG?

File->Delete

03-26-2018croppercapture 3

Title format
(Isn't it safer to have this option removed? If someone really wants to delete his wallet file he should do it manually. This way you wont have accidental deletions)

Slow blockchain header syncing

Before the syncing is done, Electrum can only show transaction but not the confirmation number (always 0 confirmation). This can confuse users a lot.

To check if the header syncing is finished, click the green light at the right-bottom of the window and check the blockchain size & server height:

image

To fix this, we need both:

  1. A good indicator of syncing in progress
  2. A compressed checkpoint file with all the headers

verify signature against public key sighash

I am working on trezor multisig support
I've a raw transaction 2of3 multisig signed by 1 cosigner

0100000001f479528049ee4b235548a7116f5ca31c607728af3d4ac8f102c5be13e93dcca900000000b40047304402201b83bd2209bc101736f60eeec3bcc1f79d45019d1829af97f5bd3210e8d8d786022020954c15372268d299b5463e1335595221e16222aee0291509a2098a0eb7fe80414c69522103556117b3f9a92f2997529af415c2c07185b872ddf1439995eca7f3acb65c58822103917f2527fc394ae2da48ce0148d29e5b756c4d9d180a6762bbe7abe215b29a562103f03364c624889c99059902524bcd8e2b24fb09cceb2e0f895d6475ef4913676553aeffffffff02a08601000000000017a914fd80725877f902f4491a6dc733fe788c376aeff8875033f4050000000017a9149aba36d2c19b08781230a4301f364610a163fc2d8700000000

Signed hex

304402201b83bd2209bc101736f60eeec3bcc1f79d45019d1829af97f5bd3210e8d8d786022020954c15372268d299b5463e1335595221e16222aee0291509a2098a0eb7fe80

public keys involved

['03556117b3f9a92f2997529af415c2c07185b872ddf1439995eca7f3acb65c5882', '03917f2527fc394ae2da48ce0148d29e5b756c4d9d180a6762bbe7abe215b29a56', '03f03364c624889c99059902524bcd8e2b24fb09cceb2e0f895d6475ef49136765']

transaction details

I want to verify from which public key signed the transaction out of 3 public key

I tried with the below code in electrumg

    tx = Transaction(raw_tx)
    sighash = Hash(bfh(tx.serialize_preimage(0)))

    pubkeys, x_pubkeys = tx.get_sorted_pubkeys(tx.inputs()[0])

    print(pubkeys)
    print(x_pubkeys)

    order = ecdsa.ecdsa.generator_secp256k1.order()
    r, s = ecdsa.util.sigdecode_der(bfh(sig), order)
    sig_string = ecdsa.util.sigencode_string(r, s, order)
    compressed = True

    for recid in range(4):
        print(recid)
        public_key = MyVerifyingKey.from_signature(sig_string, recid, sighash, curve=SECP256k1)
        print(public_key)
        pubkey = bh2u(point_to_ser(public_key.pubkey.point, compressed))
        print(pubkey)
        # print(public_key.verify_digest(sig_string, sighash, sigdecode=ecdsa.util.sigdecode_string))
    print(tx.signature_count())
    print(sighash.hex())

The output of this comes

1
02e4ee5e437084cc41095ef383803d06268068ce602a95d2e1cf7f5f5584a7d4b4
2
028b7b3b8a52b866166e34ae1194cbf60d3e2f553393410585ae4488cfb7a86796
3
027a9e3a118516cf8892b3c078ad6073f539c40e8301382f74ddc66de32783df2d

As you can see no public key match with original public keys. they all start with 02 and my public keys start with 03

Please help me.

Can't sign offline transactions for multi signature wallet

I've created a read only 2 out of 2 multisig wallet using the public keys of 2 simple, seed based, wallets.
I create a transaction using the multisig wallet which I try to sign using any of the 2 single signature wallets and I get the error:

adding signature for ff0488b21e000000000000000000c8ca75e3f03f66963308224ff218c9e309917a9e92a4861ce1ed3decad44936502d8ee15e76685e64bb09e42cb8cee15fd448bbb8a6196beed85a479122d46d76300000100
Traceback (most recent call last):
  File "/pat/to/electrum/gui/qt/util.py", line 639, in run
    result = task.task()
  File "/pat/to/electrum/lib/wallet.py", line 1465, in sign_transaction
    k.sign_transaction(tx, password)
  File "/pat/to/electrum/lib/keystore.py", line 111, in sign_transaction
    tx.sign(keypairs)
  File "/pat/to/electrum/lib/transaction.py", line 1047, in sign
    pre_hash = Hash(bfh(self.serialize_preimage(i)))
  File "/pat/to/electrum/lib/transaction.py", line 896, in serialize_preimage
    amount = int_to_hex(txin['value'], 8)
KeyError: 'value'

Recover a 2FA wallet

Hello,

I've got a 2FA Electrum wallet and I don't see an option to recover it in ElectrumG using the seed.

start error then blockchain update halt(?)

Installed electrumg but see error message below. Then blockchain synchronization stops long time at 551123/633393; hasn't updated some hours. I'm on Slackware64 14+-current. w/python3-3.7.2-x86_64-1_SBo.

Traceback (most recent call last):
  File "/usr/bin/electrumg", line 425, in <module>
    result = server.gui(config_options)
  File "/usr/lib64/python3.7/site-packages/jsonrpclib/jsonrpc.py", line 748, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python3.7/site-packages/jsonrpclib/jsonrpc.py", line 630, in _request
    check_for_errors(response)
  File "/usr/lib64/python3.7/site-packages/jsonrpclib/jsonrpc.py", line 1321, in check_for_errors
    raise ProtocolError((code, message))
jsonrpclib.jsonrpc.ProtocolError: (-32603, 'Server error: File "/usr/lib64/python3.7/site-packages/electrum/util.py", line 255, in print_stderr | OSError: [Errno 5] Input/output error\n')

ImportError: No module named 'pyblake2'

I can't get this to run on Linux Mint 18.3, I get "ImportError: No module named 'pyblake2'" however the pyblake2 package is installed:
sudo pip install pyblake2
Requirement already satisfied: pyblake2 in /usr/local/lib/python2.7/dist-packages/pyblake2-1.1.2-py2.7-linux-x86_64.egg (1.1.2)

Unsigned Transaction save/export error

Unsigned transactions created in a watching only wallet are saved (exported) with the input values missing. So transactions can not be signed offline! In effect cold storage doesn't work.

When attempting to sign Error message : ! "Value"

"not verified"

Hello
I have two transaction with status "Date-Not verified" 413fc35f09c15ce7d6fe9b64284df05cc1d7c05fd9d63a39cef9e5288a568f1d and 3931a5cf98b999770a267791770636265d664a112b0cc54e23033444d7324562 .
Is it normal?
wallet ver.ElectrumG 3.2.1
Please help.
P.S. I am miner (btg.suprnova.cc). OS Win10

Issue opening BTG wallet

Using Electrum-3.2.1
For electrumg, it keeps giving error while loading BTG wallet-

Cannot load wallet (2):
This version of ElectrumG is too old to open this wallet.
(highest supported storage version: 16, version of this file: 18)

Block Sync with server

Sync is working now and is using variable header size and offset calculation. Compression of blockheader file needs to be reworked as gzip truncates the file. We need compression otherwise it will not be lightweight anymore.

swap_with_parent needs to be tested and eventually reworked.

Server is lagging

Traceback

Traceback (most recent call last):
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\util.py", line 770, in run_with_except_hook
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\network.py", line 1035, in run
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\network.py", line 969, in wait_on_sockets
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\network.py", line 627, in process_responses
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\network.py", line 573, in process_response
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\network.py", line 879, in on_get_header
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\blockchain.py", line 381, in write
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\blockchain.py", line 61, in write_file
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\blockchain.py", line 377, in write_data
TypeError: a bytes-like object is required, not 'str'

Additional information

  • ElectrumG version: 3.2.1
  • Operating system: Windows-10-10.0.19041-SP0
  • Wallet type: standard
  • Locale: nl_NL
  • Testnet: False
  • Regtest: False

at this moment the EU server is lagging 38 Blocks.

Synchronizing issue!

Traceback

Traceback (most recent call last):
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum_gui\qt\main_window.py", line 76, in onPress
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum_gui\qt\main_window.py", line 1951, in 
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum_gui\qt\__init__.py", line 176, in show_network_dialog
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum_gui\qt\network_dialog.py", line 48, in __init__
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum_gui\qt\network_dialog.py", line 319, in __init__
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum_gui\qt\network_dialog.py", line 360, in update
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\blockchain.py", line 178, in get_name
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\blockchain.py", line 447, in get_hash
  File "site-packages\electrumg-3.2.1-py3.5.egg\electrum\blockchain.py", line 422, in read_header
Exception: Expected to read a full header. This was only 0 bytes

Additional information

  • ElectrumG version: 3.2.1
  • Operating system: Windows-10-10.0.18362-SP0
  • Wallet type: standard
  • Locale: en_US
  • Testnet: False
  • Regtest: False

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.