Skip to content

Commit

Permalink
reorg sidebar
Browse files Browse the repository at this point in the history
  • Loading branch information
filippoweb3 committed Apr 16, 2024
1 parent f7add36 commit bff363c
Showing 1 changed file with 31 additions and 31 deletions.
62 changes: 31 additions & 31 deletions docs/learn/learn-jam-chain.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ package containing many work items is refined into a **work report**, which is t
results of several items. A work package can be assigned that uses one core for a specific time slot
(typically a period of 6 seconds).

## JAM is Transactionless
### JAM is Transactionless

JAM distinguishes itself from smart contract chains by operating transactionlessly. There are no
transactions within JAM; all actions are permissionless and initially undergo a Refine stage. During
Expand Down Expand Up @@ -118,34 +118,7 @@ required for block production; instead, the system operates two epochs in advanc
part of the SAFROL algorithm, a refined version of the original [SASSAFRAS](./learn-sassafras.md)
algorithm.

## JAM Chain's Generalization

Polkadot, as outlined in the original Polkadot white paper, is primarily tailored to a specific
service profile: delivering parachains. In pursuit of this service, Polkadot has developed two
essential subcomponents:

- the distributed data availability system
- the auditing and guarantees system for computation (i.e. an optimistic roll-up system with robust
security guarantees)

JAM represents a reduction in the level of opinionation compared to Polkadot, offering a higher
level of abstraction and generalization. This facilitates easier utilization of underlying
components according to individual preferences.

JAM operates in a permissionless manner, akin to smart contract chains, allowing individuals to
upload and expect the execution of code. Additionally, it hosts data, enables preimage lookup, and
manages state, resembling a key-value pair system. The genesis block of JAM includes a service to
facilitate the creation of new services since JAM lacks a mechanism for accepting transactions
directly.

Services within JAM have no predefined limits on the amount of code, data, or state they can
accommodate. Their capabilities are determined by crypto-economic factors; the more DOT tokens
deposited, the greater capacity for data and state. For instance, **the parachains service**
consolidates all Polkadot 1.1 functionality within a single service on JAM, with the potential for
additional services to leverage Polkadot's distributed availability system, and auditing and
guarantees system for computation.

## Refine Function
### Refine Function

In the Refine processing stage within JAM, up to 5 MB of data can be accepted during each time slot,
which lasts 6 seconds. However, Refine yields a maximum of 4 kB of data, resulting in significant
Expand All @@ -172,7 +145,7 @@ code on the JAM chain and referencing its hash in the work package.

Refine is the primary processing workhorse, handling tasks with largely stateless operations.

## Accumulate Function
### Accumulate Function

The accumulate function is responsible for integrating the output generated by the Refine function
into the chain state. Accumulate can accept multiple outputs from Refine, all originating from the
Expand All @@ -192,7 +165,7 @@ Moreover, both Refine and Accumulate can invoke child instances of the PVM. This
sub-instances, or virtual machines, where code and data can be deployed, memory and stack
configurations can be customized, and computations can be executed within a flexible framework.

## On-transfer Function
### On-transfer Function

The onTransfer function within the JAM system is also stateful, enabling it to modify the service's
state. It has the capability to inspect the state of other services and make changes to its own
Expand All @@ -212,6 +185,33 @@ enhancements, such as allocating more than the current 10 milliseconds of gas in
secondary core could be utilized to execute certain accumulations, providing them with significantly
more gas to utilize.

## JAM Chain's Generalization

Polkadot, as outlined in the original Polkadot white paper, is primarily tailored to a specific
service profile: delivering parachains. In pursuit of this service, Polkadot has developed two
essential subcomponents:

- the distributed data availability system
- the auditing and guarantees system for computation (i.e. an optimistic roll-up system with robust
security guarantees)

JAM represents a reduction in the level of opinionation compared to Polkadot, offering a higher
level of abstraction and generalization. This facilitates easier utilization of underlying
components according to individual preferences.

JAM operates in a permissionless manner, akin to smart contract chains, allowing individuals to
upload and expect the execution of code. Additionally, it hosts data, enables preimage lookup, and
manages state, resembling a key-value pair system. The genesis block of JAM includes a service to
facilitate the creation of new services since JAM lacks a mechanism for accepting transactions
directly.

Services within JAM have no predefined limits on the amount of code, data, or state they can
accommodate. Their capabilities are determined by crypto-economic factors; the more DOT tokens
deposited, the greater capacity for data and state. For instance, **the parachains service**
consolidates all Polkadot 1.1 functionality within a single service on JAM, with the potential for
additional services to leverage Polkadot's distributed availability system, and auditing and
guarantees system for computation.

## Polkadot Virtual Machine (PVM)

The PVM design is rooted in the RISC-V ISA (Instruction Set Architecture), known for its simplicity
Expand Down

0 comments on commit bff363c

Please sign in to comment.