---
title: "Introduction to ShinyBlock: A Multi-Protocol Simulator"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Introduction}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

## Overview

ShinyBlock is a research-oriented framework designed to simulate the core requirements of blockchain technology.

## 1. Cryptographic Foundations

The package uses Python's standard library to ensure cryptographic parity with production systems. - **Hashing:** Every block is tethered via SHA-256. - **Merkle Trees:** Transaction integrity is verified via Merkle Roots.

## 2. Consensus and Mining

Users can adjust the "Difficulty" parameter to observe how Proof-of-Work (PoW) scales. As difficulty increases, the nonce-search space grows exponentially.

## 3. Enterprise Use Cases

The simulation includes a supply chain module and a smart contract VM to demonstrate how private blockchains differ from public ones.

## Getting Started

To launch the interactive dashboard, simply run the following command in your R console. This will initialize the Python engine and open the Shiny interface in your default browser.

```{r setup, eval = FALSE}
library(ShinyBlock)
launch_blockchain()
```

## Installation and Setup

Since `ShinyBlock` utilizes a hybrid R-Python architecture, you must initialize the Python virtual environment and install the necessary cryptographic dependencies (specifically the `ecdsa` library) before the first run.

The package provides a helper function to automate this process:

```{r setup_deps, eval = FALSE}
library(ShinyBlock)

# Run this once to set up the Python environment
install_blockchain_deps()

# Launch the simulator
launch_blockchain()
