# IPFS-based manufacturing execution system

**URL:** <https://discuss.ipfs.tech/t/ipfs-based-manufacturing-execution-system/1648>\
**Category:** Ecosystem and Usage\
**Tags:** go-ipfs, use-cases-and-apps\
**Created:** [December 15, 2017, 5:48pm UTC](https://discuss.ipfs.tech/t/ipfs-based-manufacturing-execution-system/1648 "2017-12-15T17:48:27Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![rklaehn](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/rklaehn/32/244_2.png) [@rklaehn](https://discuss.ipfs.tech/u/rklaehn)\
**Post date:** [December 30, 2017, 8:41am UTC](https://discuss.ipfs.tech/t/ipfs-based-manufacturing-execution-system/1648/6 "2017-12-30T08:41:41Z")

</div>

> [@0zAND1z](#):
>
> Could you be dear enough and spin something on how to run the private swarms successfully?

Sure. Setting up the private swarm was completely uneventful. We just followed [the instructions](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#private-networks).

We create a swarm key which gets downloaded when a node starts up for the first time, as well as a number of bootstrap nodes for this swarm. It is part of the initial configuration that gets downloaded when the device is initially set up, as well as IPFS version, settings and command line args…

We set the LIBP2P\_FORCE\_PNET environment variable to make sure we don’t accidentally connect to the public IPFS. E.g. once we accidentally had swarm.key stored as swarm\_key, and this safeguard prevented IPFS from starting up and trying to connect to the public swarm. Just removing the public bootstrap nodes is **not** enough, since IPFS has _many_ ways to discover peers… 🙂

> [@0zAND1z](#):
>
> Are you pulling the go-ipfs from the master?

No. We are downloading a released version from [IPFS Distributions](https://ipfs.io/ipns/dist.ipfs.io) . See [this discussion](https://discuss.ipfs.tech/t/ipfs-binaries-on-ipfs/1632/4) for details. The apk chooses the right binary based on the architecture (arm or x86) of the android device.

> [@0zAND1z](#):
>
> How’s the encryption playing?

The private swarm encryption uses the symmetric cipher [Salsa20](https://en.wikipedia.org/wiki/Salsa20) in a pretty straightforward way. See [this discussion](https://discuss.ipfs.tech/t/security-of-private-ipfs-network/1324) for details.

You need a secure way to distribute the swarm key to each device.

> [@0zAND1z](#):
>
> Is there something else that needs to be used?

We are currently using `--routing=dhtclient` for the ipfs nodes on the android devices in order to reduce bandwidth usage, and because the android devices frequently go offline and therefore probably are not good DHT nodes. We need to perform some more experiments with this though.

> [@0zAND1z](#):
>
> Kindly request you to take some time out and help the community see things in action…

Hope this helps!

---

_[View the full topic](https://discuss.ipfs.tech/t/ipfs-based-manufacturing-execution-system/1648)._
