ACOLYTE is a Python application designed to facilitate traceability in autonomous systems in a cibersecure manner. It has been developed to assist in the automated extraction of data from autonomous systems. The application is available in the form of a command-line tool. Two fundamental options are available:
- Store records.
- Reading information from a ROS bag file.
- Reading information from the vehicle's OBD-II port.
- Get stored records by a timeframe.
This Python application is dependant on BCubed Python library. BCubed is available at BCubed repository.
This Python application has only been tested in simulated blockchain environments. Using it in other environments is at your own risk. Keep possible charges in mind.
$ python3 -m venv .venv
$ source .venv/bin/activate
(.venv) pip install -r requirements.txt
Follow the instructions available in BCubed README.md. It is important to note that the virtual environment has already been created.
(.venv) $ pip install -e <acolyte_location>
-
Ensure the blockchain network is available.
- (Optional) Execute an Ethereum simulator.
-
Update the configuration data in the
bcubed-config.yamlfile. -
Configure the environment variable named BCUBED_CONF_FILE to set the
bcubed-config.yamlpath. By default, it is set to./bcubed-config.yaml.
-
Update the configuration data in the
topics-config.yamlfile. -
Configure the environment variable named ACOLYTE_CONF_FILE to set the
topics-config.yamlpath. By default, it is set to./topics-config.yaml. -
Execute the following command:
(.venv) $ acolyte -a store -i <rosbag2_file> -r <responsible> -w rosbag -
To monitor operating system information too, execute the following command:
(.venv) $ acolyte -a store -i <rosbag2_file> -r <responsible> -w rosbag -os
-
Update the configuration data in the
obd-config.yamlfile. -
Configure the environment variable named ACOLYTE_CONF_FILE to set the
obd-config.yamlpath. By default, it is set to./topics-config.yaml. -
Execute the following command:
(.venv) $ acolyte -a store -i /dev/null <responsible> -w obd
-
Update the configuration data in the
obd-config.yamlfile:- In the
excel_obdsection, map the Excel column names to the internal OBD field names. - Use the exact column names from your Excel file as values.
- Leave empty (
'') for fields not present in your Excel.
- In the
-
Configure the environment variable named ACOLYTE_CONF_FILE to set the
obd-config.yamlpath. By default, it is set to./topics-config.yaml. -
Execute the following command:
(.venv) $ acolyte -a store -i <excel_file> -r <responsible> -w obd_excel
- Execute the following command:
(.venv) $ acolyte -a get_by_timestamp -ts <timestamp_start> -te <timestamp_end>
(.venv) $ pip uninstall acolyte
A dataset has been created to facilitate testing of the application without the need to create your own rosbag. It is available at the following URL: https://zenodo.org/records/16630061.
This research is part of the project TESCAC, financed by “European Union NextGeneration-EU, the Recovery Plan, Transformation and Resilience, through INCIBE".
