plugin

module
v0.0.0-...-4f583ac Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2020 License: GPL-3.0

README

Meson mixnet microservice for Ethereum-based transactions
=====================================================

Meson is a fork of the `katzenpost currency plugin
<https://github.com/katzenpost/currency>`_.
It proxies transactions to a daemon via the ETH JSON HTTP RPC. As such, as long as a cryptocurrency
conforms to the ETH JSON HTTP RPC, it can make use of this plugin. One needs to only submit a raw transaction
and this mixnet service will submit them to the respective blockchain.


Dependecies
-----------

::

  docker-compose
  make

Usage
-----

It's a plugin. You are not supposed to run it yourself on the commandline.
See the handbook to learn how to configure external plugins:

* https://github.com/katzenpost/docs/blob/master/handbook/index.rst#external-kaetzchen-plugin-configuration

( if that's not enough then read our spec: https://github.com/katzenpost/docs/blob/master/specs/kaetzchen.rst )

Running a local docker-compose tesnet:
::

   make up

Bring down the local docker-compose tesnet:
::

   make down


Configuration
-------------

In order to use this plugin your Katzenpost server will need
a configuration section that looks like this:

::

  [[Provider.CBORPluginKaetzchen]]
    Disable = false
    Capability = "eth"
    Endpoint = "+eth"
    Command = "/go/bin/Meson"
    MaxConcurrency = 1
    [Provider.CBORPluginKaetzchen.Config]
      log_dir = "/conf/service_logs"
      log_level = "DEBUG"
      f = "/conf/currency.toml"


And you will also need a `currency.toml` file as the config file for Meson:

::

   Ticker = "ETH"
   RPCUser = "rpcuser"
   RPCPass = "rpcpassword"
   RPCURL = "http://127.0.0.1:9545"
   ChainId = 4
   LogDir = "/conf/service_logs"
   LogLevel = "DEBUG"


C bindings
----------

Firstly, build the client_bindings as documented here:

* https://github.com/katzenpost/client_bindings

And then build the currency common bindings:

::

   cd common/bindings
   go build -o meson_bindings.so -buildmode=c-shared bindings.go

Finally, we can build our example C wallet:

::


   gcc ./examples/wallet.c ./common/bindings/meson_bindings.so ../../client_bindings/client_bindings.so -I /home/user/gopath/src/github.com/hashcloak/Meson/common/bindings/ -I /home/user/gopath/src/github.com/katzenpost/client_bindings/ -o wallet


license
=======

AGPL: see LICENSE file for details.

Directories

Path Synopsis
pkg
common/bindings
Package main for client C binding.
Package main for client C binding.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL