How tomasbernardino/sec_ist works
DepChain is a permissioned, EVM-compatible blockchain using Basic HotStuff. A client queries balances or builds and signs a native transfer or contract call, broadcasts it, and waits for a quorum-confirmed receipt. Nodes validate and queue transactions, order them through consensus, execute decided blocks, persist state and receipts, and return responses. The graph includes the documented ISTCoin and Byzantine-mode capabilities; their implementation details were not sampled, so those links use supported enclosing source paths. Network and state wiring is based on the sampled node startup, routing, service, and link code.
Main entry points: LinkManager.java Link manager · TransactionManager.java Transaction manager · App.java Node startup · ClientLibrary.java Client library
Components 21
Client
- Client interface
client/src/main/java/ist/group29/depchain/client/App.java - Client library
client/src/main/java/ist/group29/depchain/client/ClientLibrary.java - Transaction protocol
common/src/main/proto/client.proto
Consensus Network
- Node startup
server/src/main/java/ist/group29/depchain/server/App.java - Message router
server/src/main/java/ist/group29/depchain/server/MessageRouter.java - Link manager
common/src/main/java/ist/group29/depchain/common/network/LinkManager.java - Authenticated link
common/src/main/java/ist/group29/depchain/common/network/AuthenticatedPerfectLink.java - HotStuff consensus
server/src/main/java/ist/group29/depchain/server/consensus/Consensus.java - Byzantine modes
server/src/main/java/ist/group29/depchain/server/consensus/ByzantineConsensus.java
Execution State
- Transaction manager
server/src/main/java/ist/group29/depchain/server/service/TransactionManager.java - Transaction mempool
server/src/main/java/ist/group29/depchain/server/service/Mempool.java - Transaction executor
server/src/main/java/ist/group29/depchain/server/service/TransactionExecutor.java - EVM accounts
server/src/main/java/ist/group29/depchain/server/service/account - Block service
server/src/main/java/ist/group29/depchain/server/service/Service.java - Blockchain state
server/src/main/java/ist/group29/depchain/server/service/BlockchainState.java - Block receipts
server/src/main/java/ist/group29/depchain/server/service/BlockRecord.java - ISTCoin contract
server/src/main/java/ist/group29/depchain/server/service
Identity Security
- Threshold crypto
server/src/main/java/ist/group29/depchain/server/crypto/CryptoManager.java - Node client keys
common/src/main/java/ist/group29/depchain/common/keys/KeyStoreManager.java
Other components
- Client user
- Peer nodes
Connections 32
- Client user → Client interface: requests
- Client interface → Client library: submits queries
- Client interface → Client library: submits transactions
- Client library → Transaction protocol: encodes messages
- Client library → Link manager: broadcasts via
- Client library → Link manager: replays via
- Node startup → Link manager: starts
- Node startup → Transaction manager: constructs
- Node startup → Block service: constructs
- Node startup → HotStuff consensus: starts
- Node startup → Byzantine modes: selects optional
- Link manager → Authenticated link: sends and receives
- Link manager → Message router: delivers payloads
- Message router → HotStuff consensus: dispatches consensus
- Message router → Transaction manager: dispatches requests
- HotStuff consensus → Link manager: exchanges consensus messages
- HotStuff consensus → Threshold crypto: signs and verifies
- HotStuff consensus → Block service: decides blocks
- Transaction manager → Transaction mempool: queues and removes
- Transaction manager → Blockchain state: validates against
- Transaction manager → Transaction executor: executes blocks through
- Transaction manager → Link manager: sends responses
- Block service → Transaction manager: executes decided block
- Block service → Blockchain state: persists block
- Block service → Block receipts: records receipts
- Transaction executor → EVM accounts: executes state changes
- Transaction executor → ISTCoin contract: runs contract calls
- Transaction executor → Blockchain state: updates world state
- Blockchain state → Block receipts: stores records
- Node client keys → Client library: provides identity keys
- Node client keys → Node startup: provides node keys
- Peer nodes → Link manager: exchanges messages