Giter Club home page Giter Club logo

bismuthtoolsweb's Introduction

BismuthTools Web Edition

Tools for the Bismuth Cryptocurrency

This repository contains tools for the Bismuth Cryptocurrency

For license see LICENSE file

See releases for pre-compiled versions (pre-compiled versions no longer available)

No promises are given that the tools will run on your particular system

Notes:

  1. In order to take into account the use of Hyperblocks technology the query components are only designed to use blocks since the latest hyperblock in your ledger.
  2. It is recommended that this tool be run against a full ledger

Requirements

Windows

  1. Bismuth cryptocurrency installed via the latest installation executable at https://github.com/hclivess/bismuth/releases or run from source
  2. Full Bismuth node with full ledger mode
  3. Python 3.5.3 or better and Bismuth node dependencies as detailed at https://bitcointalk.org/index.php?topic=1896497
  4. BS4 ([sudo] [pip] [pip3] install bs4)
  5. Flask
  6. tornado
  7. pyqrcode
  8. requests

Linux e.g. Ubuntu 16.04 LTS

  1. Python 3.5.3 or better and Bismuth node dependencies as detailed at https://bitcointalk.org/index.php?topic=1896497
  2. The Bismuth cryptocurrency installed from source (some additional python components such as pysocks may be needed depending on your installation)
  3. Full Bismuth node with full ledger mode
  4. BS4 ([sudo] [pip] [pip3] install bs4)
  5. Flask
  6. tornado
  7. pyqrcode
  8. requests

File placement

The files can be placed on your desktop, in your home folder etc. depending on your OS, in a folder of your choosing.

The location of your ledger.db file must be set in the toolsconfig.ini file before running. Follow the comments in the file.

tools.db

On first run, if there is no tools.db then a new one will be created.

This database is used to store sponsor, miner and richlist information and is updated every 30 minutes

Sponsors

Edit the toolsconfig.ini file as follows:

address = insert your the Bismuth address that will receive your payment

sponsors = insert 1 to switch on sponsors or 0 to switch off

rate = insert the number of blocks per Bismuth the sponsor advert will be displayed for

hostname = the base external hostname of the server e.g. bismuth.online

display = insert the maximum number of transaction records to be displayed on query of large addresses if set to zero this will return all transactions

front = insert the number of latest transactions to display on the front page

There are two sponsor spots on the main web landing page of the tools and a sponsor will be picked randomly from your sponsorlist.

Changes

Version 6.2.8 04/04/2019

  1. Minor error

Version 6.2.7 27/03/2019

  1. Fix for malformed detail queries

Version 6.2.6 20/03/2019

  1. Fix for server error in ledger query for unused address

Version 6.2.5 26/02/2019

  1. Adjustments for issue with Cryptopia and Coinmarketcap.com statistics being unavailable

Version 6.2.4 08/02/2019

  1. Temporary fix for Coinmarketcap.com statistics being unavailable

Version 6.2.3 09/11/2018

  1. More query performance fixes for txid
  2. Minor code changes

Version 6.2.2 30/10/2018

  1. Query performance fixes for txid

Version 6.2.1 25/10/2018

  1. Circulation fixes

Version 6.2.0 25/09/2018

  1. Front page display ordering fix
  2. Reduction of code
  3. Minor look and feel changes
  4. Increase template use

Version 6.1.0 17/09/2018

  1. Bismuth URL creation tool
  2. Realtime local mempool tool
  3. Improved display of mirror blocks
  4. Ledger queries of an address can be date limited
  5. Minor code improvements
  6. Sponsor handling improvements

Version 6.0.3 02/09/2018

  1. Issue 13 fix

Version 6.0.2 28/07/2018

  1. Issue 12 fix
  2. Blocktime chart
  3. Minor code changes

Version 6.0.1 26/07/2018

  1. Issue 11 fix - html content in openfield causing display problems

Version 6.0.0 18/07/2018

Major update

  1. Look and feel changes
  2. Ledger query now includes alias query
  3. Ledger query returns list with links to transaction details using simplified URL based on txid only
  4. Removal of hash column on front page in favour of txid and link to transaction detail now included
  5. Integration of operation field in query and details results
  6. Update of API to include queries using alias, txid and returning results that include operation, txid, alias etc where appropriate
  7. Minor code changes
  8. Removal of old hyperlimit code
  9. Query node directly for latest block and diff information

Future changes to include more charts and further reviews

Version 5.0.6 09/04/2018

  1. Issue 8 fix - Recommendation on wording - empty wallets

Version 5.0.5 08/03/2018

  1. Issue 7 fix - transactions not displayed for zero credit addresses e.g. mining pools
  2. Version placed on title

Version 5.0.4 18/02/2018

  1. Issue 6 fix - transactions not displayed for zero balance addresses

Version 5.0.3 09/02/2018

  1. Cryptopia address query fix to allow display of all transactions

Version 5.0.2 02/02/2018

  1. Block hash query fix

Version 5.0.1 02/02/2018

  1. Query string trim

Version 5.0.0 01/02/2018

Major version to aid transaction troubleshooting by exchanges

  1. Replacement of Block Hash in ledger query with Transaction ID (this is based on first 56 characters of signature)
  2. Transaction ID can be searched in ledger query
  3. New feature to display transaction details bu clicking block number in ledger query results
  4. Minor look and feel changes
  5. No compiled releases in this version

Version 4.2.3 26/01/2018

  1. QF001012018 - fix CMC stats query. Now made every 5 minutes rather than on demand.
  2. No compiled releases in this version

Version 4.2.2 18/01/2018

  1. Restrict richlist to those with BIS balance greater than bis_limit in toolsconfig.ini - default 1
  2. Begin display of information charts - initially most recent difficulty (toolsconfig.ini > My Charts > diff =)
  3. Charts on html template as precursor to future template use.
  4. No compiled releases in this version

Version 4.2.0 29/12/2017

  1. Updates to information display
  2. Currency display and conversion on richlist
  3. No compiled releases in this version

Version 4.1.0 03/12/2017

  1. Updates to api
  2. Minor fixes and adjustments
  3. No compiled releases in this version

Version 4.0.1 25/10/2017

  1. Implement running flask on tornado web framework
  2. Minor fixes and adjustments
  3. No compiled releases in this version

Version 4.0.0 14/10/2017

  1. Move from Bottle to Flask
  2. Initial API implementation
  3. No compiled releases in this version

Version 3.0.1 12/09/2017

  1. Fix richlist display error
  2. Fix text encode issue in bottle
  3. No compiled releases in this version

Version 3.0.0 25/06/2017

  1. Python 3.5 support
  2. Move from the web.py to the bottle web framework
  3. Improve threading error fix from 2.0.3

Version 2.0.3 18/06/2017

  1. Ledgerquery threading error fix

Version 2.0.2 17/06/2017

  1. Tools database now updated using a copy of ledger.db placed in RAM
  2. OG and other meta information now configured in toolsconfig.ini file
  3. Minor fixes, typos and updates

Version 2.0.1 21/05/2017

  1. Path to database location configured in new toolsconfig.ini file
  2. Sponsor information moved to new toolsconfig.ini file
  3. Fix compatibility with hyperblock enabled ledger.db
  4. Fix sponsor url parsing error
  5. Confirm pull request to use GMT time for display of timestamps
  6. Remove old code and tidy up

Version 2.0.0 14/05/2017

  1. Split from desktop tools into its own repository
  2. Implementation of richlist
  3. Combined database for miners, sponsors and richlist
  4. Allow alternative placement out of the main Bismuth folder by OS detect and assumed ledger.db location
  5. Remove inaccurate miner information e.g. power usage as this is not relevant to production

Future Improvements:

  1. Other Ledger Information page: to list hyperblock and query "keep" transactions
  2. Network information page
  3. Look and feel improvements
  4. Ledgerquery improvements allowing more efficient display for addresses with high numbers of transactions.

bismuthtoolsweb's People

Contributors

alias-bitsignal avatar hclivess avatar maccaspacca avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

bismuthtoolsweb's Issues

Tools Hangs

With lot of requests tools hangs, probably bottle problem

local variable 'db_block_height' referenced before assignment

 โœ— python3 bismuthtoolsweb.py
Logging level: WARNING (30)
bismuthtoolsweb.py:47: DeprecationWarning: This method will be removed in future versions.  Use 'parser.read_file()' instead.
  config.readfp(open(r'toolsconfig.ini'))
Bismuth DB path = ~/Bismuth/static/ledger.db
Bismuth DB root = ~/Bismuth/static/
Hyper.db exists = False
Hyper.db path = ~/Bismuth/static/ledger.db
No connection
Traceback (most recent call last):
  File "bismuthtoolsweb.py", line 799, in <module>
    latest()
  File "bismuthtoolsweb.py", line 336, in latest
    app_log.info("Latest block queried: {}".format(str(db_block_height)))
UnboundLocalError: local variable 'db_block_height' referenced before assignment

Recommendation on wording - empty wallets

Hi, currently users with empty but created wallets see "Error !!! Block, address or hash not found. Maybe you entered bad data or nothing at all?". We should let them know that the case might be their wallet is empty. My friend got confused by it, thanks.

Sponsors

The sponsor function is not working.

Web Tools fail when querying coinmarketcap stats api

raise value

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1612, in full_dispatch_request

rv = self.dispatch_request()

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1598, in dispatch_request

return self.view_functionsrule.endpoint

File "/home/coins/Bismuth/BismuthToolsWeb/bismuthtoolsweb.py", line 800, in home

cmcstats = get_cmc_info(cust_curr)

File "/home/coins/Bismuth/BismuthToolsWeb/bismuthtoolsweb.py", line 95, in get_cmc_info

y = json.loads(x)

File "/usr/lib/python3.5/json/init.py", line 319, in loads

return _default_decoder.decode(s)

File "/usr/lib/python3.5/json/decoder.py", line 339, in decode

obj, end = self.raw_decode(s, idx=_w(s, 0).end())

File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode

raise JSONDecodeError("Expecting value", s, err.value) from None

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

[2018-01-25 19:41:07,866] ERROR in app: Exception on /richest [GET]

Traceback (most recent call last):

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1982, in wsgi_app

response = self.full_dispatch_request()

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1614, in full_dispatch_request

rv = self.handle_user_exception(e)

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1517, in handle_user_exception

reraise(exc_type, exc_value, tb)

File "/usr/local/lib/python3.5/dist-packages/flask/_compat.py", line 33, in reraise

raise value

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1612, in full_dispatch_request

rv = self.dispatch_request()

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1598, in dispatch_request

return self.view_functionsrule.endpoint

File "/home/coins/Bismuth/BismuthToolsWeb/bismuthtoolsweb.py", line 1143, in richest_form

conv_curr = get_cmc_val(def_curr)

File "/home/coins/Bismuth/BismuthToolsWeb/bismuthtoolsweb.py", line 115, in get_cmc_val

y = json.loads(x)

File "/usr/lib/python3.5/json/init.py", line 319, in loads

return _default_decoder.decode(s)

File "/usr/lib/python3.5/json/decoder.py", line 339, in decode

obj, end = self.raw_decode(s, idx=_w(s, 0).end())

File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode

raise JSONDecodeError("Expecting value", s, err.value) from None

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

The blockex API is missing a command to request txid and get transaction info

The API page on the block explorer doesn't seem to cite a method I can use to turn a txid into info about the transaction -

I can see http://bismuth.online/api/transaction/blocknumber=amount but I don't have blocknumber and amount.

I also see http://bismuth.online/api/hash/somehashvalue but I think that takes a block hash and i don't have that either

I can put a txid into the Ledger Query form, and get results back detailing the transactrion. but there is no matching method for API. I'd rather not HTTP POST to the ledgerquery, and parse the HTML results..

Nonetype error

Occasional Nonetype error when front page loads. The error appears and then goes sometime later.
tools

Uncaught exception

^C^XERROR:tornado.application:Uncaught exception Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/tornado/http1connection.py", line 237, in _read_message delegate.finish() File "/usr/local/lib/python3.6/dist-packages/tornado/httpserver.py", line 230, in finish self.request_callback(self.request) File "/usr/local/lib/python3.6/dist-packages/tornado/wsgi.py", line 276, in call WSGIContainer.environ(request), start_response) File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2309, in call return self.wsgi_app(environ, start_response) File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2292, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1813, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1799, in dispatch_request return self.view_functionsrule.endpoint File "/home/Bismuth/BismuthToolsWeb/bismuthtoolsweb.py", line 1808, in handler x = getcirc() File "/home/Bismuth/BismuthToolsWeb/bismuthtoolsweb.py", line 746, in getcirc c.execute("SELECT sum(reward) FROM transactions;")

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.