Sunday, September 03, 2017

Bitcoin Reading List, Part 3

These two posts have two prior Bitcoin reading lists.

The original Bitcoin Whitepaper, by Satoshi Nakamoto, is a short read.

This is a good podcast to learn more about wallets and specifically the beginner-friendly Exodus wallet.

Saturday, September 02, 2017

Ethereum Mining Backup

With the size of the Ethereum block chain always increasing, it is important to occasionally back up your copy of the ledger. In case your PC crashes, you will not have to start downloading the block chain from block zero.

Shut down any running geth processes


Make a backup of your keystore:
C:\Desktop>copy %APPDATA%\Ethereum\keystore\* .
C:\AppData\Roaming\Ethereum\keystore\UTC--2017-blah-blah-9
1 file(s) copied.


Mentally make a backup of the password for your keystore.


Back up the downloaded Ethereum blockchain:
C:\Users\Desktop>geth export ethereum_blockchain_20170830
INFO [08-30|12:38:28] Allocated cache and file handles database=C:\Users\AppData\Roaming\Ethereum\geth\chaindata cache=128 handles=1024
INFO [08-30|12:38:30] Loaded most recent local header number=4220763 hash=39eda3…fd5e71 td=810099527882589796805
INFO [08-30|12:38:30] Loaded most recent local full block number=4220763 hash=39eda3…fd5e71 td=810099527882589796805
INFO [08-30|12:38:30] Loaded most recent local fast block number=4220763 hash=39eda3…fd5e71 td=810099527882589796805
INFO [08-30|12:38:30] Exporting blockchain file=ethereum_blockchain_20170830
INFO [08-30|12:38:30] Exporting batch of blocks count=4220764
INFO [08-30|12:49:53] Exported blockchain file=ethereum_blockchain_20170830
Export done in 11m22.8688061s

Sunday, July 09, 2017

Install Ubuntu 17.04 Linux

Download Ubuntu desktop version 17.04. Burn the .iso file to a DVD. Boot the DVD and install Ubuntu. Click YES to install updates during the installation. Remove the DVD and restart the machine to finish the installation process.

After the machine has restarted, log in as the installation user.

In the upper-left of the screen, press the "Dash" button and type "terminal". Click on the terminal icon to start a terminal window.


Show information about the operating system:
$ uname -a
Linux TC605 4.10.0-26-generic #30-Ubuntu SMP Tue Jun 27 09:30:12 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux




List the PCI devices:
$ lspci
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5)
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d5)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation C220 Series Chipset Family H81 Express LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
00:1f.6 Signal processing controller: Intel Corporation 8 Series Chipset Family Thermal Management Controller (rev 05)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81)
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Tobago HDMI Audio [Radeon R7 360 / R9 360 OEM]
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)
04:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)




Install updates:
$ sudo apt-get -y update
$ sudo apt-get -y upgrade -f




If the machine has a hard-wired Ethernet connection, optionally permanently disable wifi:
$ nmcli
enp3s0: connected to Wired connection 1
    "Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller"
    ethernet (r8169), 44:8A:5B:8D:64:7B, hw, mtu 1500
    ip4 default
    inet4 192.168.1.114/24
    route4 169.254.0.0/16
    inet6 fe80::ef1d:8dc6:a887:bf4a/64

wlp4s0: disconnected
    "Qualcomm Atheros AR9462 Wireless Network Adapter"
    wifi (ath9k), D2:82:2A:A3:D0:FD, hw

lo: unmanaged
    loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.

Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.

$ nmcli radio wifi off

$ nmcli
enp3s0: connected to Wired connection 1
    "Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller"
    ethernet (r8169), 44:8A:5B:8D:64:7B, hw, mtu 1500
    ip4 default
    inet4 192.168.1.114/24
    route4 169.254.0.0/16
    inet6 fe80::ef1d:8dc6:a887:bf4a/64

wlp4s0: unavailable
    "Qualcomm Atheros AR9462 Wireless Network Adapter"
    wifi (ath9k), 66:BA:1D:E2:60:B2, hw, mtu 1500

lo: unmanaged
    loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.

Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.


Optionally, permanently disable Bluetooth. Check the status, stop, disable, and check status:
$ sudo systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-07-09 13:46:54 MDT; 29min ago
     Docs: man:bluetoothd(8)
 Main PID: 813 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/bluetooth.service
           └─813 /usr/lib/bluetooth/bluetoothd

Jul 09 13:46:54 TC605 bluetoothd[813]: Bluetooth management interface 1.14 initialized
Jul 09 13:46:54 TC605 bluetoothd[813]: Failed to obtain handles for "Service Changed" characteristic
Jul 09 13:46:54 TC605 bluetoothd[813]: Sap driver initialization failed.
Jul 09 13:46:54 TC605 bluetoothd[813]: sap-server: Operation not permitted (1)
Jul 09 13:47:05 TC605 bluetoothd[813]: Endpoint registered: sender=:1.87 path=/MediaEndpoint/A2DPSource
Jul 09 13:47:05 TC605 bluetoothd[813]: Endpoint registered: sender=:1.87 path=/MediaEndpoint/A2DPSink
Jul 09 14:08:58 TC605 bluetoothd[813]: Endpoint unregistered: sender=:1.87 path=/MediaEndpoint/A2DPSource
Jul 09 14:08:58 TC605 bluetoothd[813]: Endpoint unregistered: sender=:1.87 path=/MediaEndpoint/A2DPSink
Jul 09 14:09:03 TC605 bluetoothd[813]: Endpoint registered: sender=:1.125 path=/MediaEndpoint/A2DPSource
Jul 09 14:09:03 TC605 bluetoothd[813]: Endpoint registered: sender=:1.125 path=/MediaEndpoint/A2DPSink
 

$ sudo systemctl stop bluetooth.service
 

$ sudo systemctl disable bluetooth.service
Synchronizing state of bluetooth.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable bluetooth
Removed /etc/systemd/system/dbus-org.bluez.service.
 

$ sudo systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:bluetoothd(8)

Jul 09 13:47:05 TC605 bluetoothd[813]: Endpoint registered: sender=:1.87 path=/MediaEndpoint/A2DPSink
Jul 09 14:08:58 TC605 bluetoothd[813]: Endpoint unregistered: sender=:1.87 path=/MediaEndpoint/A2DPSource
Jul 09 14:08:58 TC605 bluetoothd[813]: Endpoint unregistered: sender=:1.87 path=/MediaEndpoint/A2DPSink
Jul 09 14:09:03 TC605 bluetoothd[813]: Endpoint registered: sender=:1.125 path=/MediaEndpoint/A2DPSource
Jul 09 14:09:03 TC605 bluetoothd[813]: Endpoint registered: sender=:1.125 path=/MediaEndpoint/A2DPSink
Jul 09 14:17:11 TC605 systemd[1]: Stopping Bluetooth service...
Jul 09 14:17:11 TC605 bluetoothd[813]: Terminating
Jul 09 14:17:11 TC605 bluetoothd[813]: Endpoint unregistered: sender=:1.125 path=/MediaEndpoint/A2DPSource
Jul 09 14:17:11 TC605 bluetoothd[813]: Endpoint unregistered: sender=:1.125 path=/MediaEndpoint/A2DPSink
Jul 09 14:17:11 TC605 systemd[1]: Stopped Bluetooth service.


Restart the machine to confirm Bluetooth and/or wifi does not start.



Install networking tools:
$ sudo apt install net-tools


Show the network interfaces:

$ ifconfig
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.114  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::7974:b964:efcc:600b  prefixlen 64  scopeid 0x20<link>
        ether 44:8a:5b:8d:64:7b  txqueuelen 1000  (Ethernet)
        RX packets 15862865  bytes 20511944183 (20.5 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8095668  bytes 1703946514 (1.7 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 664  bytes 68332 (68.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 664  bytes 68332 (68.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



Install ssh to allow remote connections into this machine:
$ sudo apt-get install ssh
 
Test connecting to this machine:
$ ssh $LOGNAME@localhost


By default, the firewall is off:

$ sudo ufw status
Status: inactive

Turn on the firewall, and rate-limit incoming ssh connections:
$ sudo ufw enable
Firewall is active and enabled on system startup
$ sudo ufw status
Status: active
$ sudo ufw limit ssh
Rule added
Rule added (v6)
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     LIMIT       Anywhere                
22/tcp (v6)                LIMIT       Anywhere (v6)



Check which drivers have been installed:
$ ubuntu-drivers devices
== cpu-microcode.py ==
driver   : intel-microcode - distro non-free



Optionally use the built-in test application to test the Ubuntu Linux installation:
Press the upper-left "Dash" icon and type "system testing". Click on the "Checkbox" application, which will start the "System Testing" program. Start the testing for the graphics device (and test other areas of the installation, if you would like).

Optionally benchmark the graphics GPU:
$ sudo apt-get install glmark2
$ glmark2

=======================================================
    glmark2 2014.03+git20150611.fa71af2d
=======================================================
    OpenGL Information
    GL_VENDOR:     X.Org
    GL_RENDERER:   Gallium 0.4 on AMD BONAIRE (DRM 2.49.0 / 4.10.0-26-generic, LLVM 4.0.0)
    GL_VERSION:    3.0 Mesa 17.0.3
=======================================================
[build] use-vbo=false: FPS: 4949 FrameTime: 0.202 ms
[build] use-vbo=true: FPS: 8144 FrameTime: 0.123 ms
[texture] texture-filter=nearest: FPS: 7018 FrameTime: 0.142 ms
[texture] texture-filter=linear: FPS: 7143 FrameTime: 0.140 ms
[texture] texture-filter=mipmap: FPS: 7413 FrameTime: 0.135 ms
[shading] shading=gouraud: FPS: 7253 FrameTime: 0.138 ms
[shading] shading=blinn-phong-inf: FPS: 7127 FrameTime: 0.140 ms
[shading] shading=phong: FPS: 7068 FrameTime: 0.141 ms
[shading] shading=cel: FPS: 7036 FrameTime: 0.142 ms
[bump] bump-render=high-poly: FPS: 5507 FrameTime: 0.182 ms
[bump] bump-render=normals: FPS: 7736 FrameTime: 0.129 ms
[bump] bump-render=height: FPS: 7480 FrameTime: 0.134 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 6653 FrameTime: 0.150 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 4252 FrameTime: 0.235 ms
[pulsar] light=false:quads=5:texture=false: FPS: 7263 FrameTime: 0.138 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 2895 FrameTime: 0.345 ms
[desktop] effect=shadow:windows=4: FPS: 4709 FrameTime: 0.212 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 958 FrameTime: 1.044 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 702 FrameTime: 1.425 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 1021 FrameTime: 0.979 ms
[ideas] speed=duration: FPS: 4194 FrameTime: 0.238 ms
[jellyfish] <default>: FPS: 5232 FrameTime: 0.191 ms
[terrain] <default>: FPS: 687 FrameTime: 1.456 ms
[shadow] <default>: FPS: 4451 FrameTime: 0.225 ms
[refract] <default>: FPS: 931 FrameTime: 1.074 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 8083 FrameTime: 0.124 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 7976 FrameTime: 0.125 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 8070 FrameTime: 0.124 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 8065 FrameTime: 0.124 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 8030 FrameTime: 0.125 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 8059 FrameTime: 0.124 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 7852 FrameTime: 0.127 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 7934 FrameTime: 0.126 ms
=======================================================
                                  glmark2 Score: 5814
=======================================================

Saturday, July 08, 2017

Bitcoin Reading List, Part 2

This previous post contained Bitcoin reading material.

The book Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction covers additional material than what is available in the other reading list. This book covered several additional interesting topics such as coin mixing, ethereum, zerocash, and cross-chain coin swaps.

The book is available on Amazon at:
 

Permanently Disable Bluetooth Service On Ubuntu

How to permanently disable Bluetooth on Ubuntu 17.04 Linux.


In the upper-left-hand corner of the screen, click the "Dash" icon and type "terminal". Click on the terminal icon.

Show the current version of Linux:
$ uname -a
Linux TC605 4.10.0-26-generic #30-Ubuntu SMP Tue Jun 27 09:30:12 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


In the terminal window, run the systemctl command. Note the Bluetooth service is enabled:
$ systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset
   Active: active (running) since Sat 2017-07-08 18:34:29 MDT; 35min ago
     Docs: man:bluetoothd(8)
 Main PID: 872 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/bluetooth.service
           └─872 /usr/lib/bluetooth/bluetoothd

Jul 08 18:34:29 TC605 bluetoothd[872]: Failed to obtain handles for "Service Cha
Jul 08 18:34:29 TC605 bluetoothd[872]: Sap driver initialization failed.
Jul 08 18:34:29 TC605 bluetoothd[872]: sap-server: Operation not permitted (1)
Jul 08 18:34:29 TC605 bluetoothd[872]: Failed to set mode: Blocked through rfkil
Jul 08 18:34:40 TC605 bluetoothd[872]: Endpoint registered: sender=:1.89 path=/M
Jul 08 18:34:40 TC605 bluetoothd[872]: Endpoint registered: sender=:1.89 path=/M
Jul 08 18:35:37 TC605 bluetoothd[872]: Endpoint unregistered: sender=:1.89 path=
Jul 08 18:35:37 TC605 bluetoothd[872]: Endpoint unregistered: sender=:1.89 path=
Jul 08 18:35:40 TC605 bluetoothd[872]: Endpoint registered: sender=:1.124 path=/
Jul 08 18:35:40 TC605 bluetoothd[872]: Endpoint registered: sender=:1.124 path=/


Stop the Bluetooth service:
$ sudo systemctl stop bluetooth.service


Permanently disable the Bluetooth service:
$ sudo systemctl disable bluetooth.service
Synchronizing state of bluetooth.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable bluetooth
Removed /etc/systemd/system/dbus-org.bluez.service.


$ systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; disabled; vendor prese
   Active: inactive (dead)
     Docs: man:bluetoothd(8)

Jul 08 19:27:53 TC605 bluetoothd[908]: Endpoint registered: sender=:1.85 path=/M
Jul 08 19:27:59 TC605 bluetoothd[908]: Endpoint unregistered: sender=:1.85 path=
Jul 08 19:27:59 TC605 bluetoothd[908]: Endpoint unregistered: sender=:1.85 path=
Jul 08 19:28:00 TC605 bluetoothd[908]: Endpoint registered: sender=:1.123 path=/
Jul 08 19:28:00 TC605 bluetoothd[908]: Endpoint registered: sender=:1.123 path=/
Jul 08 19:30:11 TC605 systemd[1]: Stopping Bluetooth service...
Jul 08 19:30:11 TC605 bluetoothd[908]: Terminating
Jul 08 19:30:11 TC605 bluetoothd[908]: Endpoint unregistered: sender=:1.123 path
Jul 08 19:30:11 TC605 bluetoothd[908]: Endpoint unregistered: sender=:1.123 path
Jul 08 19:30:11 TC605 systemd[1]: Stopped Bluetooth service.


Restart the machine to verify the Bluetooth service does not restart.


After the machine has been restarted, open a terminal window and check the Bluetooth service:
$ systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; disabled; vendor prese
   Active: inactive (dead)
     Docs: man:bluetoothd(8)

Sunday, June 18, 2017

Move Ether From Coinbase Exchange To Local Exodus Wallet

If you want to buy bitcoin or ethereum on an exchange, US residents may consider Coinbase. Coinbase also trades litecoin, in addition to bitcoin and ethereum. For deposits, Coinbase accepts credit cards and checking accounts.
If you want to open an account with Coinbase, this link will give you an extra $10 to start your Coinbase account.

After you have purchased ether in your Coinbase account, you will want to install a wallet on a local machine in order to move the ether off the Coinbase exchange. After creating a local wallet, you will transfer the ether from Coinbase to the public key of your local wallet.

We will use the Exodus wallet, because it supports multiple coins. It also supports Shapeshift, to swap to different coins.

This example uses MS Windows 10 Pro, 64 bit.
Click here to download the Exodus wallet application. For this example, choose the Windows application.
Optionally scan the downloaded file for viruses.
Double-click the downloaded file to install Exodus. It will install and show a prompt telling you it has been installed. Look for the desktop shortcut and double-click it. This will display the main Exodus screen.





On the left side of the Exodus application, click Wallet.



Press Receive and the program will show your local ethereum address.
Press the left button to copy this address into the clipboard.

Login to Coinbase and go to Send/Request.
Paste the address from the clipboard, which was copied from the Exodus applictation, into the Recipient field of Coinbase.
Choose the amount to send, and select "ETH Wallet".
 

Press the Send Funds button.



Enter the authentication code, and confirm the transaction.


Coinbase will show the coin has been sent.


Go to the Exodus application and look for the received coin.


Exodus allows a backup to be created once there is any amount of coin in the wallet.Backup the wallet in Exodus by pressing the Backup button on the left side of the program.
Create a password.


The next Exodus screen will display twelve words. With these words, anyone can recreate the wallet. Print out or write down the twelve word password recovery words and keep the words private to yourself.

Enter an email address to receive a recovery link. Then log in to your email account and look for the email from support@exodus.io.

If you want to send a tip, use this ethereum public key address: 0xe3964791d573bf3459C8be9c1bffB35Ce4ddBC2e