本文整理汇总了Golang中github.com/dedis/onet/log.ErrFatal函数的典型用法代码示例。如果您正苦于以下问题:Golang ErrFatal函数的具体用法?Golang ErrFatal怎么用?Golang ErrFatal使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ErrFatal函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestIdentity_SaveToStream
func TestIdentity_SaveToStream(t *testing.T) {
l := onet.NewTCPTest()
_, el, _ := l.GenTree(5, true)
defer l.CloseAll()
id := NewIdentity(el, 50, "one1")
tmpfile, err := ioutil.TempFile("", "example")
log.ErrFatal(err)
defer os.Remove(tmpfile.Name())
log.ErrFatal(id.SaveToStream(tmpfile))
tmpfile.Close()
tmpfile, err = os.Open(tmpfile.Name())
log.ErrFatal(err)
id2, err := NewIdentityFromStream(tmpfile)
assert.NotNil(t, id2)
log.ErrFatal(err)
tmpfile.Close()
if id.Config.Threshold != id2.Config.Threshold {
t.Fatal("Loaded threshold is not the same")
}
p, p2 := id.Config.Device["one1"].Point, id2.Config.Device["one1"].Point
if !p.Equal(p2) {
t.Fatal("Public keys are not the same")
}
if id.Config.Data["one1"] != id2.Config.Data["one1"] {
t.Fatal("Owners are not the same", id.Config.Data, id2.Config.Data)
}
}
示例2: TestService_MultiLevel
func TestService_MultiLevel(t *testing.T) {
local := onet.NewLocalTest()
defer local.CloseAll()
_, el, genService := local.MakeHELS(3, skipchainSID)
service := genService.(*Service)
for base := 1; base <= 3; base++ {
for height := 1; height <= 3; height++ {
if base == 1 && height > 1 {
break
}
sbRoot, err := makeGenesisRosterArgs(service, el, nil, VerifyNone,
base, height)
log.ErrFatal(err)
latest := sbRoot
log.Lvl1("Adding blocks for", base, height)
for sbi := 1; sbi < 10; sbi++ {
sb := NewSkipBlock()
sb.Roster = el
psbr, err := service.ProposeSkipBlock(&ProposeSkipBlock{latest.Hash, sb})
log.ErrFatal(err)
latest = psbr.(*ProposedSkipBlockReply).Latest
}
log.ErrFatal(checkMLForwardBackward(service, sbRoot, base, height))
log.ErrFatal(checkMLUpdate(service, sbRoot, latest, base, height))
}
}
// Setting up two chains and linking one to the other
}
示例3: followAdd
func followAdd(c *cli.Context) error {
if c.NArg() < 2 {
log.Fatal("Please give a group-definition, an ID, and optionally a service-name of the skipchain to follow")
}
cfg, _ := loadConfig(c)
group := getGroup(c)
idBytes, err := hex.DecodeString(c.Args().Get(1))
log.ErrFatal(err)
id := identity.ID(idBytes)
newID, err := identity.NewIdentityFromCothority(group.Roster, id)
log.ErrFatal(err)
if c.NArg() == 3 {
newID.DeviceName = c.Args().Get(2)
} else {
var err error
newID.DeviceName, err = os.Hostname()
log.ErrFatal(err)
log.Info("Using", newID.DeviceName, "as the device-name.")
}
cfg.Follow = append(cfg.Follow, newID)
cfg.writeAuthorizedKeys(c)
// Identity needs to exist, else saving/loading will fail. For
// followers it doesn't matter if the identity will be overwritten,
// as it is not used.
cfg.Identity = newID
return cfg.saveConfig(c)
}
示例4: TestService_Verification
func TestService_Verification(t *testing.T) {
local := onet.NewLocalTest()
defer local.CloseAll()
sbLength := 4
_, el, genService := local.MakeHELS(sbLength, skipchainSID)
service := genService.(*Service)
elRoot := onet.NewRoster(el.List[0:3])
sbRoot, err := makeGenesisRoster(service, elRoot)
log.ErrFatal(err)
log.Lvl1("Creating non-conforming skipBlock")
sb := NewSkipBlock()
sb.Roster = el
sb.MaximumHeight = 1
sb.BaseHeight = 1
sb.ParentBlockID = sbRoot.Hash
sb.VerifierID = VerifyShard
_, err = service.ProposeSkipBlock(&ProposeSkipBlock{nil, sb})
require.NotNil(t, err, "Shouldn't accept a non-confoirming skipblock")
log.Lvl1("Creating skipblock with same Roster as root")
sbInter, err := makeGenesisRosterArgs(service, elRoot, sbRoot.Hash, VerifyShard, 1, 1)
log.ErrFatal(err)
log.Lvl1("Creating skipblock with sub-Roster from root")
elSub := onet.NewRoster(el.List[0:2])
sbInter, err = makeGenesisRosterArgs(service, elSub, sbRoot.Hash, VerifyShard, 1, 1)
log.ErrFatal(err)
scsb := &SetChildrenSkipBlock{sbRoot.Hash, sbInter.Hash}
service.SetChildrenSkipBlock(scsb)
}
示例5: TestServiceStatus
func TestServiceStatus(t *testing.T) {
local := onet.NewTCPTest()
// generate 5 hosts, they don't connect, they process messages, and they
// don't register the tree or entitylist
_, el, tr := local.GenTree(5, false)
defer local.CloseAll()
// Send a request to the service
client := NewTestClient(local)
log.Lvl1("Sending request to service...")
stat, cerr := client.Request(el.List[0])
log.Lvl1(el.List[0])
log.ErrFatal(cerr)
log.Lvl1(stat)
assert.NotEmpty(t, stat.Msg["Status"].Field["Available_Services"])
pi, err := local.CreateProtocol("ExampleChannels", tr)
if err != nil {
t.Fatal("Couldn't start protocol:", err)
}
go pi.Start()
<-pi.(*channels.ProtocolExampleChannels).ChildCount
stat, cerr = client.Request(el.List[0])
log.ErrFatal(cerr)
log.Lvl1(stat)
assert.NotEmpty(t, stat.Msg["Status"].Field["Available_Services"])
}
示例6: TestClient_CreateData
func TestClient_CreateData(t *testing.T) {
l := onet.NewTCPTest()
_, el, _ := l.GenTree(2, true)
defer l.CloseAll()
c := NewTestClient(l)
_, inter, cerr := c.CreateRootControl(el, el, 1, 1, 1, VerifyNone)
log.ErrFatal(cerr)
td := &testData{1, "data-sc"}
inter, data, cerr := c.CreateData(inter, 1, 1, VerifyNone, td)
log.ErrFatal(cerr)
if err := data.VerifySignatures(); err != nil {
t.Fatal("Couldn't verify data-signature:", err)
}
if !bytes.Equal(data.ParentBlockID, inter.Hash) {
t.Fatal("Data-chain doesn't point to intermediate-chain")
}
if !bytes.Equal(inter.ChildSL.Hash, data.Hash) {
t.Fatal("Intermediate chain doesn't point to data-chain")
}
_, td1, err := network.UnmarshalRegisteredType(data.Data, network.DefaultConstructors(network.Suite))
log.ErrFatal(err)
if *td != td1.(testData) {
t.Fatal("Stored data is not the same as initial data")
}
}
示例7: TestIdentity_ConfigNewPropose
func TestIdentity_ConfigNewPropose(t *testing.T) {
l := onet.NewTCPTest()
hosts, el, _ := l.GenTree(2, true)
services := l.GetServices(hosts, identityService)
defer l.CloseAll()
c1 := NewTestIdentity(el, 50, "one", l)
log.ErrFatal(c1.CreateIdentity())
conf2 := c1.Config.Copy()
kp2 := config.NewKeyPair(network.Suite)
conf2.Device["two"] = &Device{kp2.Public}
log.ErrFatal(c1.ProposeSend(conf2))
for _, s := range services {
is := s.(*Service)
id1 := is.getIdentityStorage(c1.ID)
id1.Lock()
if id1 == nil {
t.Fatal("Didn't find")
}
assert.NotNil(t, id1.Proposed)
if len(id1.Proposed.Device) != 2 {
t.Fatal("The proposed config should have 2 entries now")
}
id1.Unlock()
}
}
示例8: TestClient_ProposeData
func TestClient_ProposeData(t *testing.T) {
l := onet.NewTCPTest()
_, el, _ := l.GenTree(5, true)
defer l.CloseAll()
c := NewTestClient(l)
log.Lvl1("Creating root and control chain")
_, inter, cerr := c.CreateRootControl(el, el, 1, 1, 1, VerifyNone)
log.ErrFatal(cerr)
td := &testData{1, "data-sc"}
log.Lvl1("Creating data chain")
var data1 *SkipBlock
inter, data1, cerr = c.CreateData(inter, 1, 1, VerifyNone, td)
log.ErrFatal(cerr)
td.A++
log.Lvl1("Proposing data on intermediate chain")
data2, cerr := c.ProposeData(inter, data1, td)
log.ErrFatal(cerr)
dataLast, cerr := c.GetUpdateChain(inter, data1.Hash)
log.ErrFatal(cerr)
if len(dataLast.Update) != 2 {
t.Fatal("Should have two SkipBlocks for update-chain", len(dataLast.Update))
}
if !dataLast.Update[1].Equal(data2.Latest) {
t.Fatal("Newest SkipBlock should be stored")
}
c.Close()
}
示例9: TestClient_GetUpdateChain
func TestClient_GetUpdateChain(t *testing.T) {
if testing.Short() {
t.Skip("Long run not good for Travis")
}
l := onet.NewTCPTest()
_, el, _ := l.GenTree(5, true)
defer l.CloseAll()
clients := make(map[int]*Client)
for i := range [8]byte{} {
clients[i] = NewTestClient(l)
}
_, inter, cerr := clients[0].CreateRootControl(el, el, 1, 1, 1, VerifyNone)
log.ErrFatal(cerr)
wg := sync.WaitGroup{}
for i := range [128]byte{} {
wg.Add(1)
go func(i int) {
_, cerr := clients[i%8].GetUpdateChain(inter, inter.Hash)
log.ErrFatal(cerr)
wg.Done()
}(i)
}
wg.Wait()
}
示例10: newSkipchainService
func newSkipchainService(c *onet.Context, path string) onet.Service {
s := &Service{
ServiceProcessor: onet.NewServiceProcessor(c),
path: path,
SkipBlockMap: &SkipBlockMap{make(map[string]*SkipBlock)},
verifiers: map[VerifierID]SkipBlockVerifier{},
}
var err error
s.Propagate, err = manage.NewPropagationFunc(c, "SkipchainPropagate", s.PropagateSkipBlock)
log.ErrFatal(err)
c.ProtocolRegister(skipchainBFT, func(n *onet.TreeNodeInstance) (onet.ProtocolInstance, error) {
return bftcosi.NewBFTCoSiProtocol(n, s.bftVerify)
})
if err := s.tryLoad(); err != nil {
log.Error(err)
}
log.ErrFatal(s.RegisterHandlers(s.ProposeSkipBlock, s.SetChildrenSkipBlock,
s.GetUpdateChain))
if err := s.RegisterVerification(VerifyShard, s.VerifyShardFunc); err != nil {
log.Panic(err)
}
if err := s.RegisterVerification(VerifyNone, s.VerifyNoneFunc); err != nil {
log.Panic(err)
}
return s
}
示例11: signFile
// signFile will search for the file and sign it
// it always returns nil as an error
func signFile(c *cli.Context) error {
if c.Args().First() == "" {
log.Fatal("Please give the file to sign", 1)
}
fileName := c.Args().First()
groupToml := c.String(optionGroup)
file, err := os.Open(fileName)
log.ErrFatal(err, "Couldn't read file to be signed:")
sig, err := sign(file, groupToml)
log.ErrFatal(err, "Couldn't create signature:")
log.Lvl3(sig)
var outFile *os.File
outFileName := c.String("out")
if outFileName != "" {
outFile, err = os.Create(outFileName)
log.ErrFatal(err, "Couldn't create signature file:")
} else {
outFile = os.Stdout
}
writeSigAsJSON(sig, outFile)
if outFileName != "" {
log.Lvl2("Signature written to: %s", outFile.Name())
} // else keep the Stdout empty
return nil
}
示例12: TestIdentity_ConfigNewCheck
func TestIdentity_ConfigNewCheck(t *testing.T) {
l := onet.NewTCPTest()
_, el, _ := l.GenTree(5, true)
defer l.CloseAll()
c1 := NewIdentity(el, 50, "one")
log.ErrFatal(c1.CreateIdentity())
conf2 := c1.Config.Copy()
kp2 := config.NewKeyPair(network.Suite)
conf2.Device["two"] = &Device{kp2.Public}
conf2.Data["two"] = "public2"
log.ErrFatal(c1.ProposeSend(conf2))
log.ErrFatal(c1.ProposeUpdate())
al := c1.Proposed
assert.NotNil(t, al)
o2, ok := al.Device["two"]
assert.True(t, ok)
assert.True(t, kp2.Public.Equal(o2.Point))
pub2, ok := al.Data["two"]
assert.True(t, ok)
assert.Equal(t, "public2", pub2)
}
示例13: TestService_RegisterVerification
func TestService_RegisterVerification(t *testing.T) {
// Testing whether we sign correctly the SkipBlocks
onet.RegisterNewService("ServiceVerify", newServiceVerify)
local := onet.NewLocalTest()
defer local.CloseAll()
hosts, el, s1 := makeHELS(local, 3)
VerifyTest := VerifierID(uuid.NewV5(uuid.NamespaceURL, "Test1"))
ver := make(chan bool, 3)
verifier := func(msg []byte, s *SkipBlock) bool {
ver <- true
return true
}
for _, h := range hosts {
s := h.GetService(ServiceName).(*Service)
log.ErrFatal(s.RegisterVerification(VerifyTest, verifier))
}
sb, err := makeGenesisRosterArgs(s1, el, nil, VerifyTest, 1, 1)
log.ErrFatal(err)
require.NotNil(t, sb.Data)
require.Equal(t, 3, len(ver))
sb, err = makeGenesisRosterArgs(s1, el, nil, ServiceVerifier, 1, 1)
log.ErrFatal(err)
require.NotNil(t, sb.Data)
require.Equal(t, 3, len(ServiceVerifierChan))
}
示例14: loadConfig
// loadConfig will try to load the configuration and `fatal` if it is there but
// not valid. If the config-file is missing altogether, loaded will be false and
// an empty config-file will be returned.
func loadConfig(c *cli.Context) (cfg *ciscConfig, loaded bool) {
cfg = &ciscConfig{Identity: &identity.Identity{}}
loaded = true
configFile := getConfig(c)
log.Lvl2("Loading from", configFile)
buf, err := ioutil.ReadFile(configFile)
if err != nil {
if os.IsNotExist(err) {
return
}
log.ErrFatal(err)
}
_, msg, err := network.UnmarshalRegistered(buf)
log.ErrFatal(err)
cfg, loaded = msg.(*ciscConfig)
cfg.Identity.Client = onet.NewClient(identity.ServiceName)
for _, f := range cfg.Follow {
f.Client = onet.NewClient(identity.ServiceName)
}
if !loaded {
log.Fatal("Wrong message-type in config-file")
}
return
}
示例15: TestService_SetChildrenSkipBlock
func TestService_SetChildrenSkipBlock(t *testing.T) {
// How many nodes in Root
nodesRoot := 3
local := onet.NewLocalTest()
defer local.CloseAll()
hosts, el, genService := local.MakeHELS(nodesRoot, skipchainSID)
service := genService.(*Service)
// Setting up two chains and linking one to the other
sbRoot, err := makeGenesisRoster(service, el)
log.ErrFatal(err)
sbInter, err := makeGenesisRosterArgs(service, el, sbRoot.Hash, VerifyNone, 1, 1)
log.ErrFatal(err)
scsb := &SetChildrenSkipBlock{sbRoot.Hash, sbInter.Hash}
service.SetChildrenSkipBlock(scsb)
// Verifying other nodes also got the updated chains
// Check for the root-chain
for i, h := range hosts {
log.Lvlf2("%x", skipchainSID)
s := local.Services[h.ServerIdentity.ID][skipchainSID].(*Service)
m, err := s.GetUpdateChain(&GetUpdateChain{sbRoot.Hash})
log.ErrFatal(err, "Failed in iteration="+strconv.Itoa(i)+":")
sb := m.(*GetUpdateChainReply)
log.Lvl2(s.Context)
if len(sb.Update) != 1 {
// we expect only the first block
t.Fatal("There should be only 1 SkipBlock in the update")
}
link := sb.Update[0].ChildSL
if !bytes.Equal(link.Hash, sbInter.Hash) {
t.Fatal("The child-link doesn't point to our intermediate SkipBlock", i)
}
// We need to verify the signature on the child-link, too. This
// has to be signed by the collective signature of sbRoot.
if cerr := sbRoot.VerifySignatures(); cerr != nil {
t.Fatal("Signature on child-link is not valid")
}
}
// And check for the intermediate-chain to be updated
for _, h := range hosts {
s := local.Services[h.ServerIdentity.ID][skipchainSID].(*Service)
m, cerr := s.GetUpdateChain(&GetUpdateChain{sbInter.Hash})
sb := m.(*GetUpdateChainReply)
log.ErrFatal(cerr)
if len(sb.Update) != 1 {
t.Fatal("There should be only 1 SkipBlock in the update")
}
if !bytes.Equal(sb.Update[0].ParentBlockID, sbRoot.Hash) {
t.Fatal("The intermediate SkipBlock doesn't point to the root")
}
if err := sb.Update[0].VerifySignatures(); err != nil {
t.Fatal("Signature of that SkipBlock doesn't fit")
}
}
}