Skip to content
This repository was archived by the owner on Mar 18, 2019. It is now read-only.

yillkid/iota-swarm-node

Repository files navigation

IOTA Swarm Node

Summary

iota-swarm-node is a proof-of-concept implementation of IOTA Swarm node, that is a device with software/hardware implementing an algorithm aiming for allowing several swarm nodes behave as a full node.

Most use cases for micropayments involve a single user or device interacting repeatedly with a few vendors.

Prerequisites

Install dependent packages:

$ sudo apt-get install python-pip python-setuptools python-dev python3-dev \
                       build-essential libssl-dev libffi-dev

Install Python package dependencies:

$ pip install -r requirements.txt

(Alternative) Install dependencies and activate virtualenv with Pipenv:

$ pipenv install
$ pipenv shell

Build from scratch

Ensure gcc or clang available in build environment and then execute:

$ make

(Optional) run test suite:

$ make check

Launch the service

  • Launch swarm node as server:
$ python server.py
Listening on localhost:8000
  • Generate an unused address:
$ python tests/generate_address.py
Generating an unused address ...
{u'addresses': [Address('OMAEMGRMASNBLYVFCRG9UARBBCWDIC9RGCOFTVAVJZDWISOHVMFLSW9ZL9FIJIHVVRYQLIMYBWEYP9WSX')]}
Duration: 73.5027749538 seconds
  • Get tips from full node
$ python tests/get_tips.py
Getting tips ...
{u'duration': 484, u'branchTransaction': TransactionHash('QCPNKOXJXFERNNLTZZG9LBWDJQRLFIWDYNYQBHZJANJGXAADKNFTPWBWVDGHROVVVQWBKP9ROKRMZ9999'), u'trunkTransaction': TransactionHash('GEPJNFUNQGPDSFECJZGEWYYWYMGVWDCOELBKZQWILEUGGVHPNWFRLHNQHYKHCHPQWSQAXGYG9AIBA9999')}
Duration: 0.960033893585 seconds
  • Send data (0 value transaction)
$ python tests/send_transfer.py
Send send transfer command ...
WIAEHXJUVO9IDZXROJEDBQLFHVFLZCIQKPLLXCGWLNZFIUJZLBZACVLZPWAKUBYLDYRZKFIDKLSAHJHEY
Duration: 1.91658091545 seconds

Build the docker image

Before building the docker image, you need to build the iota-swarm-node.

  $ make

Build the docker image and tag with iota-swarm-node.

  $ docker build -t iota-swarm-node .

Publish docker image to Docker Hub

  1. Login to the Docker Hub.
  $ docker login
  1. Tag docker image.
  $ docker tag iota-swarm-node DOCKER_ID_USER/iota-swarm-node
  1. Push image to Docker Hub.
  $ docker push DOCKER_ID_USER/iota-swarm-node

Licensing

iota-swarm-node is freely redistributable under the two-clause BSD License. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

About

IOTA Swarm node Reference Implementation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6