| Type: | Package |
| Title: | Blockchain-Enabled Maritime Transportation System Simulator |
| Version: | 1.1.0 |
| Maintainer: | Isaac Osei <ikemillar65@gmail.com> |
| Description: | Simulates Blockchain-Enabled Maritime Transportation Systems (BMTS) by integrating asynchronous, great-circle vessel kinematics with decentralised edge-computing consensus layers. The package provides a fully self-contained cyber-range running completely offline, permitting the risk-free injection of spatial and telemetry threat vectors (e.g., geofence breaches, coordinate modification, and node impersonation). It includes an interactive workspace engine built using 'shinydashboard' and 'leaflet' map layers for monitoring vessel states and ledger updates. Implemented consensus structures are modeled on a lightweight Proof-of-Authentication framework optimized for resource-constrained distributed nodes. |
| License: | MIT + file LICENSE |
| Encoding: | UTF-8 |
| Imports: | shiny, shinydashboard, digest, leaflet, plotly |
| Suggests: | knitr, rmarkdown, testthat (≥ 3.0.0) |
| VignetteBuilder: | knitr |
| RoxygenNote: | 7.3.3 |
| Config/testthat/edition: | 3 |
| URL: | https://github.com/ikemillar/MarineChain |
| BugReports: | https://github.com/ikemillar/MarineChain/issues |
| NeedsCompilation: | no |
| Packaged: | 2026-07-06 17:47:14 UTC; isaacosei |
| Author: | Isaac Osei [aut, cre], Yamini Alakunta [aut] |
| Repository: | CRAN |
| Date/Publication: | 2026-07-15 18:00:08 UTC |
The Application Server Logic
Description
The Application Server Logic
Usage
app_server(input, output, session)
Arguments
input |
The Shiny input binding element list array mapping object. |
output |
The Shiny output rendering layout UI element structure list. |
session |
The active user environment session context container runtime. |
Value
No return value, called for application runtime side effects.
The Application User Interface
Description
The Application User Interface
Usage
app_ui(request)
Arguments
request |
The Shiny request object parameter environmental state. |
Value
A Shiny UI object representing the dashboard structural layout.
Calculate Geodetic Distance (Haversine Formula)
Description
Calculate Geodetic Distance (Haversine Formula)
Usage
calc_distance(lat1, lng1, lat2, lng2)
Arguments
lat1, lng1 |
Latitude and Longitude of Node 1 |
lat2, lng2 |
Latitude and Longitude of Node 2 |
Value
Distance in kilometers
Inject Malicious Attacks into Maritime Telemetry Streams
Description
Inject Malicious Attacks into Maritime Telemetry Streams
Usage
inject_attack(clean_packet, attack_type)
Arguments
clean_packet |
A list containing data, signature, and metadata from a vessel |
attack_type |
Character. One of "None", "Replay", "Modification", "Impersonation" |
Value
A modified packet structure representing an intercepted/compromised transmission
Run the MarineChain Simulation Application
Description
Launches the interactive, self-contained Shiny dashboard sandbox.
Usage
run_app(...)
Arguments
... |
Optional arguments passed directly to the |
Value
No return value, called to launch the interactive web application interface side effects.
Examples
# Only run execution loops in interactive R sessions
if (interactive()) {
run_app()
}
Simulate Cryptographic Processing Overhead
Description
Simulate Cryptographic Processing Overhead
Usage
simulate_crypto_ops(data_size_kb, operation)
Arguments
data_size_kb |
Numeric. Size of the sensor telemetry data in Kilobytes. |
operation |
Character. The step to simulate ("encrypt", "sign", "verify", "decrypt"). |
Value
A list containing processing time (ms) and output data size (kb).
Simulate Multi-Hop Maritime Network Routing
Description
Simulate Multi-Hop Maritime Network Routing
Usage
simulate_network_routing(vessel_coord, cs_coord, haps_coord, payload_size_kb)
Arguments
vessel_coord |
Vector of c(lat, lng) for the vessel |
cs_coord |
Vector of c(lat, lng) for the Control Station |
haps_coord |
Vector of c(lat, lng) for the nearest HAPS platform |
payload_size_kb |
Numeric size of the telemetry packet |
Value
A list detailing routing path, hop count, and transmission latency
Simulate PoAH Blockchain Block Generation
Description
Simulate PoAH Blockchain Block Generation
Usage
simulate_poah_block(dynamic_ledger, incoming_txs)
Arguments
dynamic_ledger |
A list representing the current blockchain ledger |
incoming_txs |
A list of verified vessel data payloads to combine into a block |
Value
An updated ledger list containing the new block