Exemplo n.º 1
0
        private void CreateWitness(WitnessCreateContract contract)
        {
            WitnessCapsule witness = new WitnessCapsule(
                contract.OwnerAddress,
                0,
                contract.Url.ToStringUtf8());

            Logger.Debug(
                string.Format(
                    "CreateWitness, address[{0}]",
                    witness.ToHexString()));

            this.db_manager.Witness.Put(witness.CreateDatabaseKey(), witness);
            AccountCapsule account = this.db_manager.Account.Get(witness.CreateDatabaseKey());

            account.IsWitness = true;

            if (this.db_manager.DynamicProperties.GetAllowMultiSign() == 1)
            {
                account.SetDefaultWitnessPermission(this.db_manager);
            }
            this.db_manager.Account.Put(account.CreateDatabaseKey(), account);

            long cost = this.db_manager.DynamicProperties.GetAccountUpgradeCost();

            this.db_manager.AdjustBalance(contract.OwnerAddress.ToByteArray(), -cost);
            this.db_manager.AdjustBalance(this.db_manager.Account.GetBlackHole().CreateDatabaseKey(), +cost);
            this.db_manager.DynamicProperties.AddTotalCreateWitnessCost(cost);
        }
Exemplo n.º 2
0
        public void DumpParticipationLog()
        {
            StringBuilder builder = new StringBuilder();

            int[] block_filled_slots = this.db_manager.DynamicProperties.GetBlockFilledSlots();

            builder.Append("Dump articipation log \n ")
            .Append("block filled slots : ")
            .Append(string.Join("", block_filled_slots))
            .Append(",")
            .Append("\n")
            .Append(" Head slot:")
            .Append(GetHeadSlot())
            .Append(",");

            List <ByteString> active_witness = GetActiveWitnesses();

            active_witness.ForEach(active =>
            {
                WitnessCapsule witness = this.db_manager.Witness.Get(active.ToByteArray());
                builder.Append("\n")
                .Append(" Witness : ")
                .Append(witness.ToHexString())
                .Append(",")
                .Append("LatestBlockNum : ")
                .Append(witness.LatestBlockNum)
                .Append(",")
                .Append("LatestSlotNum : ")
                .Append(witness.LatestSlotNum)
                .Append(".");
            });
            Logger.Debug(builder.ToString());
        }