  The Internet of Things comes along with new challenges for experimenting,
testing, and operating decentralized socio-technical systems at large-scale. In
such systems, autonomous agents interact locally with their users, and remotely
with other agents to make intelligent collective choices. Via these
interactions they self-regulate the consumption and production of distributed
resources. While such complex systems are often deployed and operated using
centralized computing infrastructures, the socio-technical nature of these
decentralized systems requires new value-sensitive design paradigms; empowering
trust, transparency, and alignment with citizens' social values, such as
privacy preservation, autonomy, and fairness among citizens' choices.
Currently, instruments and tools to study such systems and guide the
prototyping process from simulation to live deployment are missing, or not
practical in this distributed socio-technical context. This paper bridges this
gap by introducing a novel testbed architecture for decentralized
socio-technical systems running on IoT. This new architecture is designed for a
seamless reusability of (i) application-independent decentralized services by
an IoT application, and (ii) different IoT applications by the same
decentralized service. This dual self-integration promises IoT applications
that are simpler to prototype, and can interoperate with decentralized services
during runtime to self-integrate more complex functionality. Such integration
provides stronger validation of IoT applications, and improves resource
utilization. Pressure and crash tests during continuous operations of several
weeks, with more than 80K network joining and leaving of agents, 2.4M parameter
changes, and 100M communicated messages, confirm the robustness and
practicality of the testbed architecture.
