def ops(self, start=None, stop=None, only_virtual_ops=False):
<EOL>block_interval = self.config().get("<STR_LIT>")<EOL>if not start:<EOL><INDENT>start = self.get_current_block_num()<EOL><DEDENT>while True:<EOL><INDENT>head_block = self.get_current_block_num()<EOL>for block_num in range(start, head_block + <NUM_LIT:1>):<EOL><INDENT>yield from self.steem.rpc.get_ops_in_block(block_num, only_virtual_ops)<EOL><DEDENT>start = head_block + <NUM_LIT:1><EOL>if stop and start > stop:<EOL><INDENT>break<EOL><DEDENT>time.sleep(block_interval)<EOL><DEDENT>
Yields all operations (including virtual operations) starting from ``start``.

            :param int start: Starting block
            :param int stop: Stop at this block
            :param str mode: We here have the choice between
                 * "head": the last block
                 * "irreversible": the block that is confirmed by 2/3 of all block producers and is thus irreversible!
            :param bool only_virtual_ops: Only yield virtual operations

            This call returns a list with elements that look like
            this and carries only one operation each:::

                {'block': 8411453,
                 'op': ['vote',
                        {'author': 'dana-edwards',
                         'permlink': 'church-encoding-numbers-defined-as-functions',
                         'voter': 'juanmiguelsalas',
                         'weight': 6000}],
                 'op_in_trx': 0,
                 'timestamp': '2017-01-12T12:26:03',
                 'trx_id': 'e897886e8b7560f37da31eb1a42177c6f236c985',
                 'trx_in_block': 1,
                 'virtual_op': 0}