当前位置: 首页>>代码示例>>Golang>>正文


Golang primitives.Sha函数代码示例

本文整理汇总了Golang中github.com/FactomProject/factomd/common/primitives.Sha函数的典型用法代码示例。如果您正苦于以下问题:Golang Sha函数的具体用法?Golang Sha怎么用?Golang Sha使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了Sha函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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


注:本文中的github.com/FactomProject/factomd/common/primitives.Sha函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。