本文整理汇总了Golang中github.com/FactomProject/factomd/common/primitives.Sha函数的典型用法代码示例。如果您正苦于以下问题:Golang Sha函数的具体用法?Golang Sha怎么用?Golang Sha使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Sha函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: GetLedgerMR
// Returns the LedgerMR for this block.
func (b *FBlock) GetLedgerMR() interfaces.IHash {
b.EndOfPeriod(0) // Clean up end of minute markers, if needed.
hashes := make([]interfaces.IHash, 0, len(b.Transactions))
marker := 0
for i, trans := range b.Transactions {
for marker < len(b.endOfPeriod) && i != 0 && i == b.endOfPeriod[marker] {
marker++
hashes = append(hashes, primitives.Sha(constants.ZERO))
}
data, err := trans.MarshalBinarySig()
hash := primitives.Sha(data)
if err != nil {
panic("Failed to get LedgerMR: " + err.Error())
}
hashes = append(hashes, hash)
}
// Add any lagging markers
for marker < len(b.endOfPeriod) {
marker++
hashes = append(hashes, primitives.Sha(constants.ZERO))
}
lmr := primitives.ComputeMerkleRoot(hashes)
return lmr
}
开发者ID:jjdevbiz,项目名称:factomd,代码行数:28,代码来源:fblock.go
示例2: newChangeServerKey
func newChangeServerKey() *ChangeServerKeyMsg {
addserv := new(ChangeServerKeyMsg)
addserv.Timestamp = primitives.NewTimestampNow()
addserv.IdentityChainID = primitives.Sha([]byte("FNode0"))
addserv.AdminBlockChange = 0
addserv.KeyPriority = 0
addserv.KeyType = 0
addserv.Key = primitives.Sha([]byte("A_Key"))
return addserv
}
开发者ID:FactomProject,项目名称:factomd,代码行数:10,代码来源:changeServerKey_test.go
示例3: KeyMR
// KeyMR returns the hash of the hash of the Entry Block Header concatinated
// with the Merkle Root of the Entry Block Body. The Body Merkle Root is
// calculated by the func (e *EBlockBody) MR() which is called by the func
// (e *EBlock) BuildHeader().
func (e *EBlock) KeyMR() (interfaces.IHash, error) {
// Sha(Sha(header) + BodyMR)
e.BuildHeader()
header, err := e.Header.MarshalBinary()
if err != nil {
return nil, err
}
h := primitives.Sha(header)
return primitives.Sha(append(h.Bytes(), e.Header.GetBodyMR().Bytes()...)), nil
}
开发者ID:jjdevbiz,项目名称:factomd,代码行数:14,代码来源:eblock.go
示例4: GetLedgerKeyMR
func (b *FBlock) GetLedgerKeyMR() interfaces.IHash {
ledgerMR := b.GetLedgerMR()
data, err := b.MarshalHeader()
if err != nil {
panic("Failed to create FullHash: " + err.Error())
}
headerHash := primitives.Sha(data)
cat := append(ledgerMR.Bytes(), headerHash.Bytes()...)
lkmr := primitives.Sha(cat)
return lkmr
}
开发者ID:FactomProject,项目名称:factomd,代码行数:13,代码来源:fblock.go
示例5: GetKeyMR
// Calculates the Key Merkle Root for this block and returns it.
func (b *FBlock) GetKeyMR() interfaces.IHash {
bodyMR := b.GetBodyMR()
data, err := b.MarshalHeader()
if err != nil {
panic("Failed to create KeyMR: " + err.Error())
}
headerHash := primitives.Sha(data)
cat := append(headerHash.Bytes(), bodyMR.Bytes()...)
kmr := primitives.Sha(cat)
return kmr
}
开发者ID:FactomProject,项目名称:factomd,代码行数:14,代码来源:fblock.go
示例6: BuildBodyMR
func (b *DirectoryBlock) BuildBodyMR() (mr interfaces.IHash, err error) {
hashes := make([]interfaces.IHash, len(b.GetDBEntries()))
for i, entry := range b.GetDBEntries() {
data, _ := entry.MarshalBinary()
hashes[i] = primitives.Sha(data)
}
if len(hashes) == 0 {
hashes = append(hashes, primitives.Sha(nil))
}
merkle := primitives.BuildMerkleTreeStore(hashes)
return merkle[len(merkle)-1], nil
}
开发者ID:jjdevbiz,项目名称:factomd,代码行数:14,代码来源:directoryBlock.go
示例7: Hash
func (e *CommitChain) Hash() interfaces.IHash {
bin, err := e.MarshalBinary()
if err != nil {
panic(err)
}
return primitives.Sha(bin)
}
开发者ID:jjdevbiz,项目名称:factomd,代码行数:7,代码来源:commitchain.go
示例8: GenerateGenesisBlocks
func GenerateGenesisBlocks(networkID uint32) (interfaces.IDirectoryBlock, interfaces.IAdminBlock, interfaces.IFBlock, interfaces.IEntryCreditBlock) {
dblk := directoryBlock.NewDirectoryBlock(nil)
ablk := adminBlock.NewAdminBlock(nil)
fblk := factoid.GetGenesisFBlock(networkID)
ecblk := entryCreditBlock.NewECBlock()
if networkID != constants.MAIN_NETWORK_ID {
if networkID == constants.TEST_NETWORK_ID {
ablk.AddFedServer(primitives.NewZeroHash())
} else {
ablk.AddFedServer(primitives.Sha([]byte("FNode0")))
}
} else {
ecblk.GetBody().AddEntry(entryCreditBlock.NewServerIndexNumber())
for i := 1; i < 11; i++ {
minute := entryCreditBlock.NewMinuteNumber(uint8(i))
ecblk.GetBody().AddEntry(minute)
}
}
dblk.SetABlockHash(ablk)
dblk.SetECBlockHash(ecblk)
dblk.SetFBlockHash(fblk)
dblk.GetHeader().SetNetworkID(networkID)
dblk.GetHeader().SetTimestamp(primitives.NewTimestampFromMinutes(24018960))
return dblk, ablk, fblk, ecblk
}
开发者ID:FactomProject,项目名称:factomd,代码行数:29,代码来源:loadDatabase.go
示例9: CreateTestDirectoryBlockHeader
func CreateTestDirectoryBlockHeader(prevBlock *directoryBlock.DirectoryBlock) *directoryBlock.DBlockHeader {
header := new(directoryBlock.DBlockHeader)
header.SetBodyMR(primitives.Sha(primitives.NewZeroHash().Bytes()))
header.SetBlockCount(0)
header.SetNetworkID(constants.MAIN_NETWORK_ID)
if prevBlock == nil {
header.SetDBHeight(0)
header.SetPrevFullHash(primitives.NewZeroHash())
header.SetPrevKeyMR(primitives.NewZeroHash())
header.SetTimestamp(primitives.NewTimestampFromMinutes(1234))
} else {
header.SetDBHeight(prevBlock.Header.GetDBHeight() + 1)
header.SetPrevFullHash(prevBlock.GetHash())
keyMR, err := prevBlock.BuildKeyMerkleRoot()
if err != nil {
panic(err)
}
header.SetPrevKeyMR(keyMR)
header.SetTimestamp(primitives.NewTimestampFromMinutes(prevBlock.Header.GetTimestamp().GetTimeMinutesUInt32() + 1))
}
header.SetVersion(1)
return header
}
开发者ID:FactomProject,项目名称:factomd,代码行数:27,代码来源:testHelper.go
示例10: GetSigHash
func (t Transaction) GetSigHash() interfaces.IHash {
m, err := t.MarshalBinarySig()
if err != nil {
return nil
}
return primitives.Sha(m)
}
开发者ID:FactomProject,项目名称:factomd,代码行数:7,代码来源:transaction.go
示例11: GetSigHash
func (c *CommitChain) GetSigHash() interfaces.IHash {
if c.SigHash == nil {
data := c.CommitMsg()
c.SigHash = primitives.Sha(data)
}
return c.SigHash
}
开发者ID:FactomProject,项目名称:factomd,代码行数:7,代码来源:commitchain.go
示例12: Test_Factoid_Addresses
func Test_Factoid_Addresses(test *testing.T) {
addr := NewAddress(primitives.Sha([]byte("A fake address")).Bytes())
uaddr := primitives.ConvertFctAddressToUserStr(addr)
if !primitives.ValidateFUserStr(uaddr) {
test.Fail()
}
addrBack := primitives.ConvertUserStrToAddress(uaddr)
if bytes.Compare(addrBack, addr.Bytes()) != 0 {
test.Fail()
}
buaddr := []byte(uaddr)
for i, v := range buaddr {
for j := uint(0); j < 8; j++ {
if !primitives.ValidateFUserStr(string(buaddr)) {
test.Fail()
}
buaddr[i] = v ^ (01 << j)
if primitives.ValidateFUserStr(string(buaddr)) {
test.Fail()
}
buaddr[i] = v
}
}
}
开发者ID:jjdevbiz,项目名称:factomd,代码行数:31,代码来源:address_test.go
示例13: Hash
func (e *RevealMatryoshkaHash) Hash() interfaces.IHash {
bin, err := e.MarshalBinary()
if err != nil {
panic(err)
}
return primitives.Sha(bin)
}
开发者ID:FactomProject,项目名称:factomd,代码行数:7,代码来源:EntryRevealMatryoshkaHash.go
示例14: GetHash
func (fc *FaultCore) GetHash() interfaces.IHash {
data, err := fc.MarshalCore()
if err != nil {
return nil
}
return primitives.Sha(data)
}
开发者ID:FactomProject,项目名称:factomd,代码行数:7,代码来源:fault.go
示例15: GetCoreHash
func (m *ServerFault) GetCoreHash() interfaces.IHash {
data, err := m.MarshalForSignature()
if err != nil {
return nil
}
return primitives.Sha(data)
}
开发者ID:FactomProject,项目名称:factomd,代码行数:7,代码来源:serverFault.go
示例16: newAddServer
func newAddServer() *AddServerMsg {
addserv := new(AddServerMsg)
addserv.Timestamp = primitives.NewTimestampNow()
addserv.ServerChainID = primitives.Sha([]byte("FNode0"))
addserv.ServerType = 0
return addserv
}
开发者ID:FactomProject,项目名称:factomd,代码行数:7,代码来源:addServer_test.go
示例17: TestNewED25519Signature
func TestNewED25519Signature(t *testing.T) {
testData := primitives.Sha([]byte("sig first half one")).Bytes()
priv := testHelper.NewPrivKey(0)
sig := NewED25519Signature(priv, testData)
pub := testHelper.PrivateKeyToEDPub(priv)
pub2 := [32]byte{}
copy(pub2[:], pub)
s := sig.Signature
valid := ed25519.VerifyCanonical(&pub2, testData, &s)
if valid == false {
t.Errorf("Signature is invalid - %v", valid)
}
priv2 := [64]byte{}
copy(priv2[:], append(priv, pub...)[:])
sig2 := ed25519.Sign(&priv2, testData)
valid = ed25519.VerifyCanonical(&pub2, testData, sig2)
if valid == false {
t.Errorf("Test signature is invalid - %v", valid)
}
}
开发者ID:jjdevbiz,项目名称:factomd,代码行数:26,代码来源:signature_test.go
示例18: Hash
func (e *AddFederatedServer) Hash() interfaces.IHash {
bin, err := e.MarshalBinary()
if err != nil {
panic(err)
}
return primitives.Sha(bin)
}
开发者ID:FactomProject,项目名称:factomd,代码行数:7,代码来源:EntryAddFederatedServer.go
示例19: NewFullServerFault
func NewFullServerFault(Previous *FullServerFault, faultMessage *ServerFault, sigList []interfaces.IFullSignature, sysHeight int) *FullServerFault {
sf := new(FullServerFault)
sf.Timestamp = faultMessage.Timestamp
sf.VMIndex = faultMessage.VMIndex
sf.DBHeight = faultMessage.DBHeight
sf.Height = faultMessage.Height
sf.ServerID = faultMessage.ServerID
sf.AuditServerID = faultMessage.AuditServerID
sf.SystemHeight = uint32(sysHeight)
if Previous != nil {
sf.SSerialHash = Previous.GetSerialHash()
} else {
core, err := sf.MarshalCore()
if err != nil {
panic("Failed to Marshal Core of a Full Server Fault")
}
sf.SSerialHash = primitives.Sha(core)
}
numSigs := len(sigList)
var allSigs []interfaces.IFullSignature
for _, sig := range sigList {
allSigs = append(allSigs, sig)
}
sl := new(SigList)
sl.Length = uint32(numSigs)
sl.List = allSigs
sf.SignatureList = *sl
return sf
}
开发者ID:FactomProject,项目名称:factomd,代码行数:34,代码来源:fullServerFault.go
示例20: Hash
func (e *ServerIndexNumber) Hash() interfaces.IHash {
bin, err := e.MarshalBinary()
if err != nil {
panic(err)
}
return primitives.Sha(bin)
}
开发者ID:jjdevbiz,项目名称:factomd,代码行数:7,代码来源:serverindexnumber.go
注:本文中的github.com/FactomProject/factomd/common/primitives.Sha函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论