Skip to content

Conversation

@jeffrey-l-turner
Copy link
Collaborator

This is a documentation-only PR that establishes the foundation for documentation-first development. No source code changes were made - only markdown files were created/updated. The documentation structure follows F1R3FLY.io's template standards and supports both human developers and LLM-assisted development.

The mermaid diagram in docs/README.md provides a high-level view of how RNode operates with shards and the four consensus mechanisms, which aligns with the RGB branch's focus on the RGB Partially Synchronized State Machines consensus approach.

All existing documentation content was preserved and reorganized into the new structure. Links were updated to use F1R3FLY.io organization instead of rchain references.

Please make sure that this PR:

  • is at most 200 lines of code (excluding tests) - Documentation only, no code changes
  • meets RNode development coding standards - Documentation follows F1R3FLY.io standards
  • includes tests for all added features - N/A for documentation
  • has a reviewer assigned
  • has all commits signed

Bors cheat-sheet:

  • bors r+ runs integration tests and merges the PR (if it's approved),
  • bors try runs integration tests for the PR,
  • bors delegate+ enables non-maintainer PR authors to run the above.

Note: I updated the coding standards link to point to the new RNode documentation structure and changed the commit signing link to point to F1R3FLY.io organization since the old RChain Atlassian links would
no longer be relevant for the rebranded project.

NazarY-DevBrother and others added 30 commits May 7, 2025 17:18
…ith the latter dependent on the success of the former
cost accounting spec with costLog assertions
2 rholang contracts are failing and will need fixing in future 
1 test is blocked by a bug from rchain days. will also need to revisit/fix in future
…for pull requests in CI workflow; adds `--release` flag to `cargo test` in CI workflow
Adds CI Pipeline with GitHub Actions
Adds more explicit support for different types of errors to LspService
…cala's functional closures;

- Add BlockProcessor struct with 8 generic trait parameters for modularity;
- Create wrapper implementations for all dependencies (BlockStore, CasperBuffer, etc.);
- Introduce unified BlockProcessorDependencies struct;
- Reduce BlockProcessor generics from 8 to 1 (TransportLayer only);
* port bonds and vault parsers with associated error handling

* Port ApproveBlockProtocol implementation and associated tests to Rust

- Introduced the ApproveBlockProtocol module, implementing the protocol for block approval in the Casper engine.
- Added a factory for creating instances of the protocol with necessary infrastructure.
- Implemented metrics and event logging interfaces to track protocol events.
- Created comprehensive tests for the ApproveBlockProtocol, covering valid and invalid approvals, signature handling, and message broadcasting.
- Updated the engine module to include the new ApproveBlockProtocol.
- Fixed error handling in bonds parser tests to reflect changes in expected error types.

* fix create_invalid_approval test

* addressing the review comments

* cargo fmt

* Refactor metrics handling in ApproveBlockProtocol

- Introduced a new `Metrics` trait for better metrics management.
- Implemented `MetricsTestImpl` for isolated testing of metrics functionality.
- Updated `ApproveBlockProtocolImpl` to include error handling when incrementing metrics counters.
- Removed the previous metrics trait implementation from `approve_block_protocol.rs` to streamline the codebase.

* Refactor transport layer in approve_block_protocol_test

- Replaced custom TransportLayerTestImpl with TransportLayerStub for improved test isolation and clarity.
- Updated test assertions to utilize request count from the new transport layer implementation.
- Cleaned up unused code related to the previous transport layer stub.

* Refactor RPConf creation in approve_block_protocol_test

- Replaced manual RPConf instantiation with a new helper function `create_rp_conf_ask` for improved readability and maintainability.
- Streamlined the configuration setup by encapsulating connection parameters within the helper function.

* Refactor genesis block creation in approve_block_protocol_test

- Replaced the manual genesis block creation logic with a new `GenesisBuilder` utility for improved test clarity and maintainability.
- Updated test fixtures to utilize the new `build_test_genesis` method, simplifying the setup process for tests.
- Removed redundant code related to the previous genesis block creation function.
Ported block_processor and related code
YuriiO-DevBrother and others added 30 commits September 18, 2025 16:01
…cold);

- change Engine::handle to &self; add EngineArcAdapter to avoid cloning Initializing;
- use interior mutability (Arc<Mutex<Option<T>>>) in Initializing;
- wire block/tuple-space receivers from tests into Initializing; ignore direct StoreItems/BlockMessage in handle;
- set shard_name="root" and RPConf.bootstrap=local in setup to match Scala;
- insert context genesis into block_store in TestFixture;
- remove premature put_approved_block; persist after state restoration;
- run LFS streams in parallel; populate DAG; return block_store before transition;
- ensure EngineCell is set before spawn; pass receivers in initializing_spec;
- add tracing logs in on_approved_block/request_approved_state.
- cleaned up commands and logs;
feat: Ported the node configuration from Scala to Rust
- deleted redundant logs;
- fixed handle logic;
- fixed block_message sendings;
- fixed deadlocks in lfs_tuple_space_requester::stream;
…izing.rs_rebased

porting `Initializing` and `InitializingSpec` classes from Scala to Rust
…ients

Ported the GrpcReplClient to Rust. Updated the version of tonic to 0.14 for the whole repository
…client

Ported the GrpcDeployService and GrpcProposeService from Scala to Rust.
This changes are done in scope of node porting. GrpcDeployService and GrpcProposeService are used in the node::Main.scala.
* Port RholangCLI to Rust

* review comments

* review comment: Refactor RholangCLI to use asynchronous file operations with Tokio

* Update README.md to clarify usage instructions for Rholang CLI, including two options for running the CLI and updated examples for better usability.

* review comment: create a path for Tmp folder instead of create-delete folder

* cargo fmt

* review comment: Add timeout feedback to evaluation in Rholang CLI

* review comment: io => usererror

* fmt
feat: Ported the runCLI method in node module
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants