DocChain is built on a microservices architecture with Stellar blockchain integration for document notarization and verification. The system consists of five primary components:
Security Features:
Transaction Management
interface StellarTransaction {
: string;
sourceAccount: string;
documentHash: number;
timestamp: {
metadata: string;
documentType: string;
version: string[];
validationRules
} }
Smart Contract Implementation
class NotaryContract {
// Stellar account for the contract
public contractAccount: string;
// Document registration
async registerDocument(
: string,
hash: DocumentMetadata
metadata: Promise<Transaction> {
)// Create Stellar transaction
// Add document hash as memo
// Sign and submit
}
// Document verification
async verifyDocument(
: string
hash: Promise<VerificationResult> {
)// Query Stellar network
// Verify hash existence
// Return verification status
} }
Network Integration
ROOT_ACCOUNT
├── NOTARY_POOL_ACCOUNT
│ ├── DOCUMENT_ACCOUNT_1
│ ├── DOCUMENT_ACCOUNT_2
│ └── DOCUMENT_ACCOUNT_N
└── FEE_POOL_ACCOUNT
Document Upload
sequenceDiagram
User->>API: Upload Document
API->>DocService: Process Document
DocService->>StellarService: Generate Hash
StellarService->>Stellar: Create Transaction
Stellar-->>User: Confirmation
Document Verification
sequenceDiagram
Verifier->>API: Submit Document
API->>DocService: Generate Hash
DocService->>StellarService: Query Hash
StellarService->>Stellar: Verify Transaction
Stellar-->>Verifier: Verification Result
interface NotaryAPI {
// Document Management
uploadDocument(file: File, metadata: Metadata): Promise<UploadResult>;
verifyDocument(hash: string): Promise<VerificationResult>;
// Stellar Operations
submitTransaction(tx: StellarTransaction): Promise<TransactionResult>;
queryTransaction(hash: string): Promise<TransactionStatus>;
// Account Management
createAccount(): Promise<AccountDetails>;
manageKeys(account: string, operation: KeyOperation): Promise<KeyResult>;
}