IOTA commandline wallet
A commandline based wallet for the IOTA crypto currency, based on nodejs
If you are familiar with DOS commandline, or Linux is your preferred OS this is for you. I have made everything as simple as possible, there are Videos for installation and operation, but still users not familiar with command line operations might have their problems.
If somebody wants to build a GUI on top, you are welcome to do so.
In order to run the wallet on an regular basis, consider to run your own IOTA full node, how to do this is shown in the section "Setting up a IOTA full node" below.
Youtube video guideing you through the installation: https://www.youtube.com/watch?v=ke1NERpgbd4 This video shows how to install nodejs, additional modules and the download of the wallet itself as a .zip archieve.
Install nodejs Version >= 8.0.0 create a directory and put the my-wallet.js and iota-wallet-config.js in there
Install additional modules
npm install iota.lib.js
npm install nedb
The node you want to connect to needs to have the AttachToTangle command enabled, if not you wont be able to send Transactions. You can use IOTA Proxy ( https://github.com/TimSamshuijzen/iotaproxy ) to do the Proof of Work locally. Windows installation is a bit complex since you need to install the build enviroenment beforehand. See: https://www.npmjs.com/package/windows-build-tools
Now you need to edit the configuration file to enter your seed and the URL of the IOTA full node you want to use. For suggestions which node to use see: http://iotasupport.com/lightwallet.shtml
See the contents of the file: iota-wallet-config.js Please take the time to read all comments in the file to fully understand what you are doing!
Now you are ready to run, enter:
node my-wallet.js help
node my-wallet.js SyncAll
node my-wallet.js ShowBalance
Youtube video on how to operate the wallet: https://www.youtube.com/watch?v=cwTxv-LnvYw shows the initial configuration, a transfer with lookup of confirmation state and the replay of a bundle.
Old Introductional Video https://www.youtube.com/watch?v=nWo1vwNsXfo
Address states used are:
- new = unused not attached to tangle
- attached = has one or more transactions with value 0
- used = has transactions but no outgoing transactions and balance > 0
- exhausted = has one confirmed outgoing transaction, no more transactions should issued with this address
- overused = has more than one outgoing transaction, this should not happen, but can be forced by the user
Setting up a IOTA full node, just a brief overview
- Get access (or setup yourself) to a 64Bit Windows or Linux or Mac server which has a public IP or can be reached from the internet using something like DynDns
- Be sure the server runs 24/7 and is intended to alwas be connected to the internet.
- Install Oracle Java RuntimeEnvironment (JRE) 64Bit. You might download it from here http://www.oracle.com/technetwork/java/javase/downloads/server-jre8-downloads-2133154.html
- Get the precompiled IOTA Reference Implementation (IRI) from here https://github.com/iotaledger/iri/releases. Download the precompiled jar. For example the iri-1.3.2.jar
- Copy the iri to a directory where it can be executed in.
- Write a startup script. Just one line is enough. Example: java -Xmx1G -jar iri-1.3.2.jar -c iri.ini --remote --remote-limit-api "removeNeighbors, addNeighbors, interruptAttachingToTangle, attachToTangle"
- Get neighbours, therefore goto https://slack.iota.org/ and join the community and enter the channel nodesharing. On this cannel are more people like you searching for neighbours, just get in touch and find 4-9 Neighbours.
- Edit iri.ini suit your needs.
A more detailed description can be found on https://forum.iota.org/t/setting-up-a-headless-node-on-a-ubuntu-iri-version-1-2-1/1332 and on https://github.com/iotaledger/iri
New Features in 0.8.0 are: Instructional Video: https://youtu.be/o4m05b56muU
Changes in the config file:
- now you can set minWeightMagnitude: which defaults to 14 currently
- addressIndexNewAddressStart: This is to prevent address double usage after a snapshot, you can set a minimum address index where the generation of new addresses shoud start.
- addressIndexSeachBalancesStart: This is just a spped up, if you got lots (>1000) addresses, you can set a minimum index for address scanning, so that you always scan old addresses where nothing happend anymore example for the UpdateBalances command.
- New Command: GetAddressIndexes If you have a Balance on you seed/wallet this will give you appropriate values for the two values above.
- Added short commands: UpdateBalances = UBS, GetNewAddress = GNA, GetConfirmationState = GCS, just for the ease of use.
- Some minor bugfixes.