Unit-1 Foundations of Software Systems and Blockchain
Unit 1: Foundations
of Software Systems and Blockchain
1. Layers of a Software System
Software systems are typically
organized into layers to separate
responsibilities, improve maintainability, and allow independent scaling.
Common layers include:
- Presentation Layer: Handles user interface (UI)
and user interaction (e.g., web pages, mobile app screens).
- Application/Business Logic Layer: Contains the core business
rules and orchestrates data flow, processing user requests (the
"brains" of the application).
- Data Access Layer (DAL): Provides an interface for
the application to interact with data storage, abstracting database
complexities.
- Data Layer: The actual persistent
storage for data (e.g., databases, file systems).
This layered approach promotes modularity and makes systems easier to
develop, test, and update.
2. Integrity
Integrity in software
systems ensures that data is accurate, consistent, and trustworthy throughout
its lifecycle, and that processes operate correctly without unauthorized
alteration. It means data has not been tampered with or corrupted accidentally
or maliciously. Key aspects include data integrity
(accuracy of information) and system integrity
(system operating as intended). Mechanisms like data validation, access
controls, and cryptographic hashing help maintain integrity.
3. A Payment System
A payment system is a
network of technologies, rules, and institutions that facilitates the transfer
of money between parties for transactions. It involves several components: the Payer (initiator), Payee (recipient), a
Payment Instrument (e.g., credit card), a Payment Gateway (authorizes transactions), Acquiring Bank (merchant's bank), Issuing Bank (customer's bank), and Payment Networks (e.g., Visa, Mastercard) that connect
them for authorization and settlement. Its purpose is to enable secure and
efficient financial exchanges.
4. Types of Software Architecture
Software architecture defines the
fundamental structure of a software system. Key types include:
·
Monolithic Architecture: A single, tightly
coupled unit for all functionalities. Simple for small apps but hard to scale.
·
Layered (N-Tier) Architecture: Components
separated into logical layers (Presentation, Business, Data Access) for better
organization and maintainability.
·
Microservices Architecture: Application broken
into small, independent services communicating via APIs. Offers high
scalability and resilience but adds complexity.
·
Client-Server Architecture: Clients request
services from central servers. Centralized control but a single point of
failure.
·
Peer-to-Peer (P2P) Architecture: All nodes act as
both clients and servers, communicating directly without a central authority.
Highly resilient but challenging for consistency and management.
·
Event-Driven Architecture: Components
communicate by emitting and reacting to events, promoting loose coupling and
scalability.
5. Purpose of the Blockchain
The core purpose of the Blockchain
is to create a secure, transparent, and immutable distributed
ledger for recording transactions or data. It eliminates the need
for a central intermediary by building trust through cryptographic proof and
decentralized consensus. This enables verifiable, tamper-resistant
record-keeping, fostering a "trustless" environment where
participants rely on the system's integrity rather than a single authority.
6. Peer-to-Peer (P2P) System
Definition:
A Peer-to-Peer (P2P) system
is a decentralized network where all participants (nodes) are equally
privileged, acting as both clients and servers. They communicate directly to
share resources and services without a central server.
Architecture:
P2P architectures are decentralized.
They can be Unstructured (random connections, easy to build but
inefficient search) or Structured (nodes organized for
efficient content lookup, more complex). Hybrid models
combine central elements with P2P data transfer.
Link between P2P
and Blockchain:
The P2P system is the foundational
network for Blockchain. Blockchain uses a P2P network to enable
decentralized communication, propagate transactions and blocks, and achieve
consensus among nodes on the shared, distributed ledger. Without P2P, a
blockchain would be a centralized database.
Integrity Threats
in P2P Systems:
P2P systems face threats like Data Corruption/Tampering (malicious alteration of
shared data), Sybil Attacks (single entity creating multiple fake
identities), Free Riding (users consuming resources without
contributing), Denial-of-Service (DoS) Attacks,
and Eclipse Attacks (isolating a peer from the network).
Cryptographic methods and consensus mechanisms help mitigate these, especially
in blockchain.
7. Four Ways of Defining Blockchain
Blockchain can be defined as:
1.
A Distributed Ledger Technology (DLT): A decentralized,
shared, and immutable database.
2.
A Chain of Cryptographically Linked Blocks: Sequential
blocks of data linked by cryptographic hashes, forming an unalterable history.
3.
A Trustless Consensus Mechanism: A system allowing
disparate parties to agree on a shared ledger state without a central
authority.
4.
A Public, Immutable Record-Keeping System: A transparent
and unchangeable system for verifiable data recording.
8. The Purpose of the Blockchain (Re-emphasized)
The central purpose of the Blockchain
is to establish a decentralized, trustless, and highly secure
system for maintaining an immutable and transparent ledger of transactions or
data. It solves the problem of needing an intermediary to verify
trust, allowing participants to directly agree on the state of shared
information.
9. Blockchain Properties
Key properties that define blockchain
technology:
·
Decentralization: No central control; network
distributed across multiple nodes.
·
Immutability: Once recorded, data cannot be
altered or deleted.
·
Transparency: All transactions are publicly
visible (though often pseudonymous).
·
Security: Achieved through strong cryptography
and consensus mechanisms.
·
Distributed Ledger: Every node holds a
copy of the entire ledger.
·
Consensus: All participants agree on
transaction validity and block order.
·
Programmability (Smart Contracts): Ability to execute
self-enforcing code on the blockchain.
Comments
Post a Comment