 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>
		
			
				
	
	
		
			60 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| A short guide to migrating to go-ipld-prime from other repos
 | |
| ============================================================
 | |
| 
 | |
| Here are some quick notes on APIs that you might've been using
 | |
| if you worked with IPLD in golang before go-ipld-prime,
 | |
| and a pointer to what you should check out for an equivalent
 | |
| in order to upgrade your code to use go-ipld-prime.
 | |
| 
 | |
| (Let us know if there are more pointers we should add to this list to ease your journey,
 | |
| or someone else's future journey!)
 | |
| 
 | |
| - Were you using [ipfs/go-datastore](https://pkg.go.dev/github.com/ipfs/go-datastore) APIs?
 | |
| 	- You can wrap those in `storage/dsadapter` and keep using them.
 | |
| 	  You can also plug that into `linking.LinkSystem` to get higher level IPLD operations.
 | |
| 	- Or if you were only using datastore because of some specific implementation of it, like, say `flatfs`?
 | |
| 	  Then check out the possibility of moving all the way directly to new implementations like `storage/fsstore`.
 | |
| - Were you using [ipfs/go-ipfs-blockstore](https://pkg.go.dev/github.com/ipfs/go-ipfs-blockstore) APIs?
 | |
| 	- You can wrap those in `storage/bsadapter` and keep using them.
 | |
| 	  You can also plug that into `linking.LinkSystem` to get higher level IPLD operations.
 | |
| 	  (This is almost exactly the same; we've just simplified in the interface, made it easier to implement, and cleaned up inconsistencies with the other interfaces in this migration guide which were already very very similar.)
 | |
| - Were you using [ipfs/go-blockservice](https://pkg.go.dev/github.com/ipfs/go-blockservice) APIs?
 | |
| 	- You can wrap those in `storage/bsrvadapter` and keep using them.
 | |
| 	  You can also plug that into `linking.LinkSystem` to get higher level IPLD operations.
 | |
| 		- Be judicious about whether you actually want to do this.
 | |
| 		  Plugging in the potential to experience unknown network latencies into code that's expecting predictable local lookup speeds
 | |
| 		  may have undesirable performance outcomes.  (But if you want to do it, go ahead...)
 | |
| - Were you using [ipfs/go-ipld-format.DAGService](https://pkg.go.dev/github.com/ipfs/go-ipld-format#DAGService)?
 | |
| 	- If you're using the `Add` and `Get` methods: those are now on `linking.LinkSystem`, as `Store` and `Load`.
 | |
| 	- If you're using the `*Many` methods: those don't have direct replacements;
 | |
| 	  we don't use APIs that force that style of future-aggregation anymore, because it's bad for pipelining.
 | |
| 	  Just use `Store` and `Load`.
 | |
| - Were you using [ipfs/go-ipld-format.Node](https://pkg.go.dev/github.com/ipfs/go-ipld-format#Node)?
 | |
| 	- That's actually a semantic doozy -- we use the word "node" _much_ differently now.
 | |
| 	  See https://ipld.io/glossary/#node for an introduction.
 | |
| 	  (Long story short: the old "node" was often more like a whole block, and the new "node" is more like an AST node: there's lots of "node" in a "block" now.)
 | |
| 	- There's an `datamodel.Node` interface -- it's probably what you want.
 | |
| 	  (You just might have to update how you think about it -- see above bullet point about semantics shift.)
 | |
| 	  It's also aliased as the `ipld.Node` interface here right in the root package, because it's such an important and central interface that you'll be using it all the time.
 | |
| 	- Are you specifically looking for how to get a list of links out of a block?
 | |
| 	  That's a `LinkSystem.Load` followed by applying `traversal.SelectLinks` on the node it gives you: now you've got the list of links from that node (and its children, recursively, as long as they came from the same block of raw data), tada!
 | |
| - Are you looking for the equivalent of [ipfs/go-ipld-format.Link](https://pkg.go.dev/github.com/ipfs/go-ipld-format#Link)?
 | |
| 	- That's actually a feature specific to dag-pb, and arguably even specific to unixfsv1.
 | |
| 	  There is no equivalent in go-ipld-prime as a result.
 | |
| 	  But you'll find it in other libraries that are modern and go-ipld-prime based: see below.
 | |
| - Were you using some feature specific to dag-pb?
 | |
| 	- There's an updated dag-pb codec found in https://github.com/ipld/go-codec-dagpb -- it should have what you need.
 | |
| 	- Does it turn out you actually meant you're using some feature specific to unixfsv1?
 | |
| 	  (Yeah -- that comes up a lot.  It's one of the reasons we're deprecating so many of the old libraries -- they make it _really_ easy to confuse this.)
 | |
| 	  Then hang on for the next bullet point, which is for you! :)
 | |
| - Were you using some features of unixfsv1?
 | |
| 	- Check out the https://github.com/ipfs/go-unixfsnode library -- it should have what you need.
 | |
| 		- Pathing, like what used to be found in ipfs/go-path?  That's here now.
 | |
| 		- Sharding?  That's here now too.
 | |
| 		- You probably don't need incentives if you're here already, but can we quickly mention that... you can use Selectors over these?  Neat!
 | |
| 
 | |
| If you're encountering more questions about how to migrate some code,
 | |
| please jump in to the ipld chat via either [matrix](https://matrix.to/#/#ipld:ipfs.io) or discord (or any other bridge)
 | |
| and ask!
 | |
| We want to grow this list of pointers to be as encompassing and helpful as possible.
 |