44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
/*
 | 
						|
Package feeds defines Swarm Feeds.
 | 
						|
 | 
						|
Swarm Feeds allows a user to build an update feed about a particular topic
 | 
						|
without resorting to ENS on each update.
 | 
						|
The update scheme is built on swarm chunks with chunk keys following
 | 
						|
a predictable, versionable pattern.
 | 
						|
 | 
						|
A Feed is tied to a unique identifier that is deterministically generated out of
 | 
						|
the chosen topic.
 | 
						|
 | 
						|
A Feed is defined as the series of updates of a specific user about a particular topic
 | 
						|
 | 
						|
Actual data updates are also made in the form of swarm chunks. The keys
 | 
						|
of the updates are the hash of a concatenation of properties as follows:
 | 
						|
 | 
						|
updateAddr = H(Feed, Epoch ID)
 | 
						|
where H is the SHA3 hash function
 | 
						|
Feed is the combination of Topic and the user address
 | 
						|
Epoch ID is a time slot. See the lookup package for more information.
 | 
						|
 | 
						|
A user looking up a the latest update in a Feed only needs to know the Topic
 | 
						|
and the other user's address.
 | 
						|
 | 
						|
The Feed Update data is:
 | 
						|
updatedata = Feed|Epoch|data
 | 
						|
 | 
						|
The full update data that goes in the chunk payload is:
 | 
						|
updatedata|sign(updatedata)
 | 
						|
 | 
						|
Structure Summary:
 | 
						|
 | 
						|
Request: Feed Update with signature
 | 
						|
	Update: headers + data
 | 
						|
		Header: Protocol version and reserved for future use placeholders
 | 
						|
		ID: Information about how to locate a specific update
 | 
						|
			Feed: Represents a user's series of publications about a specific Topic
 | 
						|
				Topic: Item that the updates are about
 | 
						|
				User: User who updates the Feed
 | 
						|
			Epoch: time slot where the update is stored
 | 
						|
 | 
						|
*/
 | 
						|
package feed
 |