Overview
The Python (PYT) Driver provides connectivity between IOTA and Python scripting engine. The driver is state-less, i.e. it doesn't maintain source connections and data caches. The single Python Driver service can support multiple connections to different local Python distributions.
The driver supports the following object types:
IOTA Type | Supported? | Source Type |
---|---|---|
Tag | 🟢 | Output Variable |
Asset | ⚫ | |
Timeframe | ⚫ |
Warning
IOTA Python Driver DOES NOT install Python. Python must be downloaded and installed separately.
Make sure that pythondll
path is defined in specific ProgramData
driver's configuration file: iota.pytdrv.json
Diagram
Technical Specification
Description | Value |
---|---|
Development Language | C# |
Processor Architecture | 64-bit |
Supported Operating Systems | Windows 2012+ |
Minimum Requirements CPU/Memory | 4 cores / 8 Gb |
Deployment Size | 7.3 Mb |
Data modes | Read |
Request/Response pattern | Asynchronous |
Source Communication | PythonNET Interop |
Back-end Communication | NATs message bus |
Message bus driver type | pyt |
Near Real-Time Data Updates | Yes |
Multiple PI Systems/Data Archives | Yes |
Dependencies
Name | Version |
---|---|
Microsoft Windows | 2012 and above |
Microsoft .Net Framework | 4.7.2 |
Python x64 | 3.11.0 and above |
Security
Source Security
IOTA Python Driver must be installed on the same Windows machine where Python distribution was installed. IOTA Python Driver interacts with Python distribution via shared runtime dynamic library so there is no client-server communication requiring authentication.
Note
It is important to run Python Driver service under the same user account which installed local python modules via pip
IOTA API (back-end) Security
The Python Driver uses NATs message bus to communicate with the IOTA Vue Cluster. The two-way data traffic is encrypted using Transport Layer Security (TLS) on port 443. In addition, the message bus communication security model uses a public-key signature system based on Ed25519 called NKeys. With NKeys, the server can verify identities without ever storing or seeing private keys. The authentication system works by requiring a connecting client to provide its public key and digitally sign a challenge with its private key. The server generates a random challenge with every connection request, making it immune to playback attacks. The generated signature is validated against the provided public key, thus proving the client's identity. If the public key is known to the server, authentication succeeds.