GithubHelp home page GithubHelp logo

artrepreneur / zulu Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 2.0 83.19 MB

A GUI wallet for the PKT Cash blockchain, complete with support for multisig transactions.

License: MIT License

Python 97.42% Go 0.09% Shell 2.49%

zulu's Introduction

License: MIT Build Status

Zulu

Zulu wallet is a QT wallet for the PKT Cash blockchain mainnet. This wallet adds a graphical user interface (GUI) to the command line daemon pktwallet. Zulu Wallet runs as a standalone application for macOS currently, and eventually will have support for Unix.

This is a SPV wallet, and no longer a full node. It comes bundled with binaries for pktwallet, and the remote procedure call (RPC) client pktctl. These binaries are stored in the bin folder of this repo. It is also possible to compile these binaries from their respective repositories. If you decide to compile on your own, use this branch of the pkt-cash repo. These binaries should be placed in the bin folder or the wallet will cease to work. It is important to note that the pktwallet binary should be renamed to wallet, and the btcctl binary should be renamed pktctl else they will fail to function properly.

Wallet Features

The wallet includes the following features.

  1. Send and receive transactions.
  2. Sign transactions.
  3. Verify transactions.
  4. Generate new regular addresses.
  5. Export private keys and import new private keys.
  6. Password-protect the wallet.
  7. Save and restore the wallet backup from seed.
  8. Fold wallet addresses - for large UTXO sets.
  9. View full transaction history.

Installation

Clone the repository.

git clone https://github.com/artrepreneur/Zulu

Please use Python 3. Create an Anaconda environment.

Install zbar. The zbar DLLs are included with the Windows Python wheels. However, you will need to install the zbar shared library on other operation systems

Mac OS X:
brew install zbar
Linux:
sudo apt-get install libzbar0

Use pip to install the dependencies from requirements.txt.

pip install -r requirements.txt
Linux (required):

Swap the binaries for pktwallet and pktctl in the bin directory for linux binaries. You can build them from the repo's mentioned above or use these releases. This is required for linux to work but is optional on mac's.

Finally, change the permissions of the binaries.

chmod 755 bin/*

Running PKT Cash Wallet

To run Zulu wallet, just invoke the python script as follows.

Mac OS X:
pythonw PKTWallet.py
Linux:
pythonw PKTWallet.py

That's it. If you have a legacy command line wallet already running it will use the existing wallet database already present on your system. If you don't have a command line wallet you will be prompted to create a new wallet. Always, make sure to store your wallet seed in a safe place.

Build A DMG

By default, .dmg's are available in releases, but for completeness, and security, you can build your own .dmg using the bundled make script. On mac's you can do the following.

sudo ./make_osx.sh

Your .dmg, and a PKTWallet executable PKTWallet.app, are both available in the ./dist directory. To run it, copy it to the applications folder and run it as a normal app.

cp -rf ./dist/PKTWallet.app /Applications

You can also run the .dmg which will install the PKTWallet.app where it needs to go. Mac's will require you to go to System Preferences > Security & Privacy and allow the application to run.

zulu's People

Contributors

artrepreneur avatar cjdelisle avatar scottwedge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

zulu's Issues

wallet connection

wallet cannot connect to any servers and syncing
to servers seems down
from 28 july until now

Avoid killing pktwallet if it was started by the user manually

As part of being a good neighbor to the other applications running on the machine, it would be good not to kill an existing pktwallet if it is running, instead the better thing to do is raise a dialog telling the user that pktwallet is already running and they should stop it from the command line before launching the app.

A couple of additional nice-to-haves would be:

  1. If btcctl --wallet getinfo works then attempt to simply connect to the existing wallet. If there is a major version difference then btcctl will refuse to talk to the wallet so it won't.
  2. If the wallet that is running happens to be the one which was started by PKTWallet.app, then it would be a good idea shut it down and restart it because it is not something the user started.

Folding in Zulu

Trying to figure out how I fold in the app. When I send a PKT balance to the same wallet it tells me I can't do that, and when I try to send between addresses, it tells me balance insufficient.

Continue without seed fails

continue without seed --> Your wallet could not be created. Verify seed and/or old password.

Also note spelling:
"Make sure your password is at lest 8 letters"

Avoid using kill-9 to stop pktd/pktwallet

kill-9 runs the risk of databases not being shut down cleanly and ending up corrupted - so the better thing to do is use a SIGINT and then wait for the process to shut down. In practice it should stop within a couple of seconds, but the thing to do is check if it's stopped once per second until 30 seconds and then issue a kill-9.

Zulu is telling me the wallet password is incorrect

Hello,

Please, could you help me?
I created the wallet last month, I'm pretty sure I have the correct password recorded, as well as the seed words, but it keeps telling me it is wrong.

I've created a very strong password, with a length of 64 chars, and including symbols like @#%^&*.
Is there any problem with these?

How could I retrieve the funds in there?
I've tried in another computer to recreate the wallet with the same seed and pass, but in spite of Zulu not giving me any error, my addresses and funds did not appear.

Can someone help? Thanks.

Add a light showing the status of pktwallet backend

The idea would be to add a little "LED" like lightbulb to the UI which shows:

  • red if there's a problem launching pktwallet (ideally with a small explanation on mouseover)
  • yellow if pktwallet is currently syncing
  • green if pktwallet seems to be synced

btcctl --wallet getinfo should indicate whether the wallet seems to be syncing.

Enable "semi-SPV" mode

Because syncing pktd takes a long time, we can enable SPV on pktwallet instead and only connect to a couple of "trusted nodes".

The threat model currently is that if you're not verifying PacketCrypt proofs then someone can easily pass you fake blocks, but this attack really only allows someone to trick you into thinking you've been paid when you haven't --- or to trick you into thinking you haven't when in fact you have. Using -connect with some "well known nodes" should be a reasonable way to make this work in the interim until validation of PacketCrypt proofs is rolled out.

Bug report button

Because there will likely be a large number of non-technical users adopting this wallet, it would be great if there was some way for them to click a button if it's not working correctly and submit a bug report. It doesn't have to be highly fancy, it just needs to submit a ball of JSON to a server of someone (e.g. Anode or Gridfinity) who is willing to help triage the errors and write them up into proper bug reports.

I would imagine that there should be a bug button and when you click it, it will pop a dialog which says:

Please describe what's wrong: [                 ]
Leave your email so the developers can contact you:  [               ]
[Submit bug report]
The bug reports may contain your PKT addresses but we will not share any of the information without your permission. We will not be able to access your funds.

What is submitted should probably include:

  • python log
  • pktwallet log
  • pktd log (if pktd is being run)

PKT Wallet wont Start

Pkt wallet was working fine... crashed. Wont reopen. Upgraded to newest Big Sur - wont open. It bounces in the doc and doesn’t start. I’ve restarted, reinstalled. Nothing works.

Application won’t start

I downloaded the DMG file, installed PKTWallet and dragged it over to applications. However, when I click on the application to start, it bounces in the dock for a few seconds and then just disappears.

When launching the wallet, it crashes with a stack trace

I'm getting this in my logs:

2020-06-18 10:23:34.164 [INF] BTCD btcd.go:66: Version 1.1.0-beta+f9cc9937

2020-06-18 10:23:34.164 [INF] BTCD btcd.go:275: Loading block database from '/Users/user/Library/Application Support/Pktd/data/pkt/blocks_ffldb'

Traceback (most recent call last):
  File "PKTWallet.py", line 2198, in <module>
  File "PKTWallet.py", line 1957, in status_light
  File "PKTWallet.py", line 43, in pktwllt_synching
TypeError: 'NoneType' object is not subscriptable

Not working correctly when there is no existing wallet

To reproduce:

  • mv ~/Library/Application\ Support/Pktwallet/ ~/Library/Application\ Support/_Pktwallet/
  • Launch the pktwallet
  • Observe that it doesn't prompt you to create a wallet and instead it thinks a wallet exists

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.