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 {
sourceAccount: string;
documentHash: string;
timestamp: number;
metadata: {
documentType: string;
version: string;
validationRules: string[];
}
}Smart Contract Implementation
class NotaryContract {
// Stellar account for the contract
public contractAccount: string;
// Document registration
async registerDocument(
hash: string,
metadata: DocumentMetadata
): Promise<Transaction> {
// Create Stellar transaction
// Add document hash as memo
// Sign and submit
}
// Document verification
async verifyDocument(
hash: string
): 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: ConfirmationDocument Verification
sequenceDiagram
Verifier->>API: Submit Document
API->>DocService: Generate Hash
DocService->>StellarService: Query Hash
StellarService->>Stellar: Verify Transaction
Stellar-->>Verifier: Verification Resultinterface 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>;
}