 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package cid
 | |
| 
 | |
| import (
 | |
| 	mh "github.com/multiformats/go-multihash"
 | |
| )
 | |
| 
 | |
| type Builder interface {
 | |
| 	Sum(data []byte) (Cid, error)
 | |
| 	GetCodec() uint64
 | |
| 	WithCodec(uint64) Builder
 | |
| }
 | |
| 
 | |
| type V0Builder struct{}
 | |
| 
 | |
| type V1Builder struct {
 | |
| 	Codec    uint64
 | |
| 	MhType   uint64
 | |
| 	MhLength int // MhLength <= 0 means the default length
 | |
| }
 | |
| 
 | |
| func (p Prefix) GetCodec() uint64 {
 | |
| 	return p.Codec
 | |
| }
 | |
| 
 | |
| func (p Prefix) WithCodec(c uint64) Builder {
 | |
| 	if c == p.Codec {
 | |
| 		return p
 | |
| 	}
 | |
| 	p.Codec = c
 | |
| 	if c != DagProtobuf {
 | |
| 		p.Version = 1
 | |
| 	}
 | |
| 	return p
 | |
| }
 | |
| 
 | |
| func (p V0Builder) Sum(data []byte) (Cid, error) {
 | |
| 	hash, err := mh.Sum(data, mh.SHA2_256, -1)
 | |
| 	if err != nil {
 | |
| 		return Undef, err
 | |
| 	}
 | |
| 	return Cid{string(hash)}, nil
 | |
| }
 | |
| 
 | |
| func (p V0Builder) GetCodec() uint64 {
 | |
| 	return DagProtobuf
 | |
| }
 | |
| 
 | |
| func (p V0Builder) WithCodec(c uint64) Builder {
 | |
| 	if c == DagProtobuf {
 | |
| 		return p
 | |
| 	}
 | |
| 	return V1Builder{Codec: c, MhType: mh.SHA2_256}
 | |
| }
 | |
| 
 | |
| func (p V1Builder) Sum(data []byte) (Cid, error) {
 | |
| 	mhLen := p.MhLength
 | |
| 	if mhLen <= 0 {
 | |
| 		mhLen = -1
 | |
| 	}
 | |
| 	hash, err := mh.Sum(data, p.MhType, mhLen)
 | |
| 	if err != nil {
 | |
| 		return Undef, err
 | |
| 	}
 | |
| 	return NewCidV1(p.Codec, hash), nil
 | |
| }
 | |
| 
 | |
| func (p V1Builder) GetCodec() uint64 {
 | |
| 	return p.Codec
 | |
| }
 | |
| 
 | |
| func (p V1Builder) WithCodec(c uint64) Builder {
 | |
| 	p.Codec = c
 | |
| 	return p
 | |
| }
 |