seekia/internal/moderation/trustedAddressDeposits/trustedAddressDeposits.go

49 lines
1.7 KiB
Go
Raw Normal View History

// trustedAddressDeposits provides functions to save and retrieve cryptocurrency address deposit information from hosts
package trustedAddressDeposits
//TODO: Build package
// Deposits should be retrieved from multiple hosts using the GetAddressDeposits request.
// We should store deposits in badgerDatabase.
// We must store each deposit, the host who told us about the deposit, and the time the deposit was made.
// The time of a deposit is derived from the block time, so all deposits within the same block should be represented as a single deposit.
// Hosts should only provide information about confirmed deposits (a defined number of blocks)
// We can detect hosts who are lying by comparing their alleged deposits to what other hosts are telling us.
// We can then add those hosts to our malicious hosts list.
// Clients should be constantly updating deposits for all downloaded moderators to keep up with any new deposits.
// For an address deposit history to be known, it needs to have been verified by at least 3 hosts
// Regardless of which network type the host who shared them belongs to, address deposits should be identical.
// TODO: Take into consideration the network type of the host who shared each address deposit?
import "seekia/internal/network/serverResponse"
func CheckIfAddressDepositsAreKnown(cryptocurrency string, address string)(bool, error){
//TODO
return true, nil
}
func AddAddressDepositObjectsListToCache(hostIdentityHash [16]byte, cryptocurrency string, depositObjectsList []serverResponse.DepositStruct)error{
//TODO
return nil
}
func AddAddressesWithNoDepositsToCache(hostIdentityHash [16]byte, cryptocurrency string, addressesList []string)error{
//TODO
return nil
}