https://github.com/astares/pharo-blockchain
A minimalistic blockchain written in Pharo
https://github.com/astares/pharo-blockchain
Last synced: 3 months ago
JSON representation
A minimalistic blockchain written in Pharo
- Host: GitHub
- URL: https://github.com/astares/pharo-blockchain
- Owner: astares
- Created: 2024-07-25T22:40:58.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-12-17T23:29:25.000Z (7 months ago)
- Last Synced: 2025-02-11T11:40:06.894Z (5 months ago)
- Language: Smalltalk
- Size: 17.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://pharo.org/download)
[](https://pharo.org/download)
[](https://pharo.org/download)
[](https://pharo.org/download)
[](https://pharo.org/download)
[](https://pharo.org/download)# Pharo-Blockchain
A minimalistic blockchain written in [Pharo](https://www.pharo.org)## Quick Start
### InstallYou can install **Blockchain** by executing the following load scripts:
```Smalltalk
Metacello new
repository: 'github://astares/Pharo-Blockchain:main/src';
baseline: 'Blockchain';
load
```### Use the blockchain
```Smalltalk
| blockchain |
blockchain := Blockchain new.
"Add some data"
blockchain addNewBlockWithData: 'First Block'.
blockchain addNewBlockWithData: 'Second Block'.
self assert: blockchain isValid."Manipulate the data"
blockchain chain second data: 'Manipulated'.
self deny: blockchain isValid
```## Implementation
The **Blockchain class** represents individual blocks in the chain. Each block has:
- an index
- a timestamp
- data (which can be any object)
- the hash of the previous block
- its own hashThe **Blockchain class** manages the chain of blocks. It includes methods to:
- initialize the chain with a genesis block
- add new blocks
- validate the integrity of the chain