function transferBySystem(uint256 _expire, bytes32 _tid, address _from, address _to, uint256 _value, uint8 _v, bytes32 _r, bytes32 _s) public returns (bool) {
        require(allowedMiner[msg.sender] == 1);
        require(tradeID[_tid] == 0);
        require(_from != _to);
        
        
        uint256 maxExpire = _expire.add(86400);
        require(maxExpire >= block.timestamp);
        
        
        uint256 totalPay = _value.add(systemFee);
        require(balances[_from] >= totalPay);

        
        bytes32 hash = keccak256(
          abi.encodePacked(_expire, uniqueStr, _tid, _from, _to, _value)
        );

        
        address theAddress = ecrecover(hash, _v, _r, _s);
        require(theAddress == _from);
        
        
        tradeID[_tid] = 1;
        
        
        balances[_from] = balances[_from].sub(totalPay);

        
        balances[feeBank] = balances[feeBank].add(systemFee);

        
        balances[_to] = balances[_to].add(_value);

        emit Transfer(_from, _to, _value);
        emit Transfer(_from, feeBank, systemFee);

        return true;
    }